
//listing of all techniques and passes with embedded asm listings 

technique draw
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudShadowOffset;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float2 DetailOffset;
            //   float2 GalaxyOffset;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 SunDirection;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   gWorld                                      c0       4
            //   gWorldViewProj                              c8       4
            //   SunDirection                                c64      1
            //   SkyColor                                    c65      1
            //   AzimuthColor                                c66      1
            //   AzimuthColorEast                            c67      1
            //   AzimuthHeight                               c68      1
            //   TopCloudBiasDetailThresholdHeight           c69      1
            //   CloudShadowOffset                           c70      1
            //   AzimuthStrength                             c71      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c72      1
            //   StarFieldUVRepeat                           c73      1
            //   GalaxyOffset                                c74      1
            //   DetailOffset                                c75      1
            //
            
                vs_3_0
                def c4, 0, 1, 9.99999975e-006, 1.5
                def c5, 0.5, -0.0187292993, 0.0742610022, -0.212114394
                def c6, 1.57072878, -2, 3.14159274, 1.57079637
                def c7, 0.317732662, 0.100000001, 0, 0
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1.xyz
                dcl_texcoord1 o2.xyz
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                dcl_texcoord5 o6.xyz
                mov r0.x, -v0.y
                max r0.x, r0.x, c4.x
                min r0.x, r0.x, c4.y
                mov r0.x, -r0.x
                add r0.x, r0.x, v0.y
                mul r1, c8, v0.x
                mul r2, r0.x, c9
                add r1, r1, r2
                mul r2, c10, v0.z
                add r1, r1, r2
                mul r2, c11, v0.w
                add r1, r1, r2
                mov r1, r1
                mov r2.xy, v1
                mov r1, r1
                mul r0.yzw, c0.xxyz, v0.x
                mul r3.xyz, r0.x, c1
                add r0.xyz, r0.yzww, r3
                mul r3.xyz, c2, v0.z
                add r0.xyz, r0, r3
                mul r3.xyz, c3, v0.w
                add r0.xyz, r0, r3
                mov r3.xyz, -c3
                add r0.xyz, r0, r3
                mov r2.xy, r2
                add r3.xyz, r0, c4.z
                dp3 r0.w, r3, r3
                rsq r0.w, r0.w
                mul r3.xyz, r3, r0.w
                mov r3.xyz, r3
                mul r0.w, r3.y, c4.w
                add r3.w, r0.w, c5.x
                add r4.xyz, r3.xwzw, c4.z
                dp3 r0.w, r4, r4
                rsq r0.w, r0.w
                mul r4.xy, r4.xzzw, r0.w
                mov r0.w, -r4.x
                max r2.w, r4.x, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.z, r2.w, c5.y
                add r4.z, r4.z, c5.z
                mul r4.z, r2.w, r4.z
                add r4.z, r4.z, c5.w
                mul r2.w, r2.w, r4.z
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.x, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.z, r0.w, c5.x
                mov r0.w, -r4.y
                max r2.w, r4.y, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.x, r2.w, c5.y
                add r4.x, r4.x, c5.z
                mul r4.x, r2.w, r4.x
                add r4.x, r4.x, c5.w
                mul r2.w, r2.w, r4.x
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.y, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.w, r0.w, c5.x
                add r4.zw, r4, c74.xyxy
                mul r4.xy, r4.zwzw, c73.x
                mov r3.zw, -r3.xyxz
                add r3.zw, r3, c64.xyxz
                mov r5.y, c7.y
                mul r5.xy, r5.y, c70.x
                mul r3.zw, r3, r5.xyxy
                mov r5.xy, r2
                mov r3.zw, r3
                mul r5.zw, r5.xyxy, -c6.y
                add r5.zw, r5, -c4.y
                mul r0.w, r5.z, r5.z
                mul r2.w, r5.w, r5.w
                add r0.w, r0.w, r2.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r3.zw, r3, r0.w
                add r6.xy, r2, r3.zwzw
                add r3.zw, r5.xyxy, -c5.x
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                add r3.zw, r3, c4.z
                mul r2.w, r3.z, r3.z
                mul r5.x, r3.w, r3.w
                add r2.w, r2.w, r5.x
                rsq r2.w, r2.w
                mul r3.zw, r3, r2.w
                mul r3.zw, r0.w, r3
                mul r3.zw, r3, c4.y
                mov r3.zw, r3
                mul r3.zw, r3, c72.z
                add r6.zw, r3, c75.xyxy
                add r3.zw, r2.xyxy, -c5.x
                mul r3.zw, r3, c69.w
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                mov r0.w, -r0.w
                add r5.z, r0.w, c4.y
                add r5.xy, r3.zwzw, c5.x
                mov r5.xy, r5
                mov r5.z, r5.z
                rcp r0.w, r1.w
                mul r0.w, r1.z, r0.w
                mov r0.w, -r0.w
                add r2.z, r0.w, c4.y
                mov r3.xy, r3
                mul r0.w, r3.y, c68.x
                max r0.w, r0.w, c4.x
                min r0.w, r0.w, c4.y
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r0.w, r0.w, c71.x
                mov r3.x, r3.x
                mul r2.w, r3.x, c4.y
                add r2.w, r2.w, c4.x
                mul r2.w, r2.w, c5.x
                add r2.w, r2.w, c5.x
                mov r3.xyz, -c67
                add r3.xyz, r3, c66
                mul r3.xyz, r2.w, r3
                add r3.xyz, r3, c67
                mul r3.xyz, r0.w, r3
                add r3.xyz, r3, c65
                mov r3.xyz, r3
                mov r1, r1
                mov r6.xy, r6
                mov r6.zw, r6
                mov r4.xy, r4
                mov r4.zw, r4
                mov r2.xy, r2
                mov r2.z, r2.z
                mov r0.xyz, r0
                mov r5.xy, r5
                mov r5.z, r5.z
                mov r3.xyz, r3
                mov o0, r1
                mov o3, r6
                mov o4, r4
                mov o1.xyz, r2
                mov o2.xyz, r0
                mov o5.xyz, r5
                mov o6.xyz, r3
            
            // approximately 166 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   sampler2D PerlinNoiseSampler;
            //   float4 StarFieldBrightness;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //   float3 gtaSkyDomeFade;
            //   float3 gtaWaterColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SunColor                                    c66      1
            //   gtaSkyDomeFade                              c67      1
            //   gtaWaterColor                               c68      1
            //   CloudColor                                  c69      1
            //   SunsetColor                                 c70      1
            //   CloudThreshold                              c71      1
            //   CloudBias                                   c72      1
            //   CloudFadeOut                                c73      1
            //   TopCloudBiasDetailThresholdHeight           c74      1
            //   TopCloudColor                               c75      1
            //   CloudShadowStrength                         c76      1
            //   CloudInscatteringRange                      c77      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c78      1
            //   StarFieldBrightness                         c79      1
            //   SunSize                                     c80      1
            //   HDRExposure                                 c81      1
            //   HDRSunExposure                              c82      1
            //   HDRExposureClamp                            c83      1
            //   GalaxySampler                               s0       1
            //   PerlinNoiseSampler                          s1       1
            //   HighDetailNoiseSampler                      s2       1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0, 0
                def c1, 25.1599998, 0.5, -0.0625, -0.461699992
                def c2, 0.9375, 0.5, 32, 0.600000024
                def c3, 4, -2, 3, 0.200000003
                def c4, 0.349999994, 0, 0, 0
                dcl_texcoord_pp v0.xy
                dcl_texcoord1_pp v1.xyz
                dcl_texcoord2_pp v2
                dcl_texcoord3_pp v3.zw
                dcl_texcoord4_pp v4.xyz
                dcl_texcoord5_pp v5.xyz
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                mov r0.xyz, v1
                mov_pp r1.xyz, v5
                mov_pp r2.xy, v2
                mov_pp r2.z, v4.z
                mov_pp r0.w, r0.y
                mov_pp r3.xyz, c65
                add r0.xyz, r0, c0.x
                dp3 r1.w, r0, r0
                rsq r1.w, r1.w
                mul_pp r0.xyz, r0, r1.w
                mov_pp r4.xyz, c66
                mov r1.w, c65.w
                mov r3.xyz, r3
                mov r0.xyz, r0
                mov r2.w, c80.x
                mov r3.w, -c82.y
                add r3.w, r3.w, c0.y
                add r4.w, r3.w, c0.z
                cmp r3.w, r4.w, r3.w, c0.w
                add r4.w, r3.w, -c0.y
                cmp r3.w, r4.w, c0.y, r3.w
                mul r3.w, r3.w, c1.x
                dp3 r3.x, r0, r3
                mul r5.x, r3.w, c1.y
                mov r5.yz, c1.xzyw
                mul r3.xyz, r3.x, r5
                mul r5.x, r3.w, c1.w
                mov r5.yz, c2.xxyw
                add r3.xyz, r3, r5
                add r5.xyz, r3, c0.z
                cmp r3.xyz, r5, r3, c0.w
                add r5.xyz, r3, -c0.y
                cmp r3.xyz, r5.zxyw, c0.y, r3.zxyw
                mov r3.w, -r3.y
                mov r4.w, -r3.w
                add r4.w, r3.y, r4.w
                cmp r3.y, r4.w, r3.y, r3.w
                log r3.y, r3.y
                mul r3.y, r3.y, c2.z
                exp r3.y, r3.y
                mov r3.w, -r3.z
                mov r4.w, -r3.w
                add r4.w, r3.z, r4.w
                cmp r3.z, r4.w, r3.z, r3.w
                mul r3.w, r3.z, c0.y
                mul r3.z, r3.z, r3.z
                mul r3.z, r3.w, r3.z
                add r1.w, r1.w, c2.w
                add r3.w, r1.w, c0.z
                cmp r1.w, r3.w, r1.w, c0.w
                add r3.w, r1.w, -c0.y
                cmp r1.w, r3.w, c0.y, r1.w
                mul r1.w, r3.z, r1.w
                mov r1.w, -r1.w
                add r1.w, r3.y, r1.w
                mul r2.w, r2.w, r3.x
                add r1.w, r1.w, r2.w
                mul r1.w, r1.w, c1.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mul r1.w, r1.w, c3.x
                mov r2.w, c64.x
                mov r3.y, c64.y
                mov r3.x, r3.x
                mul r3.x, r3.y, r3.x
                add r2.w, r2.w, r3.x
                add r3.x, r2.w, c0.z
                cmp r2.w, r3.x, r2.w, c0.w
                add r3.x, r2.w, -c0.y
                cmp r2.w, r3.x, c0.y, r2.w
                mul r3.x, r2.w, r2.w
                mul r2.w, r2.w, c3.y
                add r2.w, r2.w, c3.z
                mul r2.w, r3.x, r2.w
                mul r2.w, r2.w, c64.z
                add r3.xyz, r1.w, r2.w
                mov r1.w, -r3.z
                add r1.w, r1.w, c0.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp_pp r3.w, r2.w, c0.y, r1.w
                mov_pp r3.xyz, r3
                mov_pp r3, r3
                mul_pp r4.xyz, r4, r3
                mov_pp r5.xyz, -r4
                mov_pp r6.xyz, -r5
                add_pp r6.xyz, r4, r6
                cmp_pp r5.xyz, r6, r4, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, c0.y
                add_pp r3.xyz, r4, r5
                mul_pp r3, r3, c82.x
                mov_pp r1.xyz, r1
                mov_pp r2.xyz, r2
                mov_pp r3, r3
                texld_pp r4, v0, s1
                mov_pp r4.xy, r4.xzzw
                texld r5, v2.zwzw, s2
                add r1.w, r5.x, -c1.y
                mul r2.w, r1.w, c78.w
                add_pp r4.x, r4.x, r2.w
                mul r4.x, r4.x, c71.x
                mov r4.z, -c72.x
                add r4.x, r4.x, r4.z
                add r4.w, r4.x, c0.z
                cmp r4.x, r4.w, r4.x, c0.w
                add r4.w, r4.x, -c0.y
                cmp r4.x, r4.w, c0.y, r4.x
                mov_pp r4.w, -r4.x
                mov_pp r5.x, -r4.w
                add_pp r5.x, r4.x, r5.x
                cmp_pp r4.w, r5.x, r4.x, r4.w
                log r4.w, r4.w
                mul r4.w, r4.w, c78.x
                exp r4.w, r4.w
                mul r4.x, r4.x, c78.y
                add r5.x, r4.x, c0.z
                cmp r4.x, r5.x, r4.x, c0.w
                add r5.x, r4.x, -c0.y
                cmp r4.x, r5.x, c0.y, r4.x
                mul r4.x, r4.w, r4.x
                texld_pp r5, v2, s1
                mov_pp r5.x, r5.x
                mul r2.xy, r2, c78.z
                texld r6, r2, s2
                mul r2.x, r6.x, c78.w
                mul r2.x, r2.x, c3.w
                add_pp r2.x, r5.x, r2.x
                mul r2.x, r2.x, c71.x
                add r2.x, r4.z, r2.x
                mul r2.x, r2.x, c76.x
                add r2.y, r2.x, c0.z
                cmp r2.x, r2.y, r2.x, c0.w
                add r2.y, r2.x, -c0.y
                cmp r2.x, r2.y, c0.y, r2.x
                texld_pp r5, v4, s1
                mov_pp r2.y, r5.y
                mul r2.w, r2.w, c74.y
                add_pp r2.y, r2.y, r2.w
                mul r2.y, r2.y, c74.z
                mov r2.w, -c74.x
                add r2.y, r2.y, r2.w
                add r2.w, r2.y, c0.z
                cmp r2.y, r2.w, r2.y, c0.w
                add r2.w, r2.y, -c0.y
                cmp r2.y, r2.w, c0.y, r2.y
                mul_pp r2.y, r2.z, r2.y
                dp3 r0.x, r0, c65
                mul_pp r0.z, r0.x, r0.x
                mov r2.z, -r4.x
                add r2.z, r2.z, c0.y
                mul r2.w, r2.x, c1.y
                mov r2.w, -r2.w
                add r2.w, r2.z, r2.w
                add r4.z, r2.w, c0.z
                cmp r2.w, r4.z, r2.w, c0.w
                add r4.z, r2.w, -c0.y
                cmp r2.w, r4.z, c0.y, r2.w
                mul r0.z, r0.z, r2.w
                mul r0.z, r0.z, c77.x
                add_pp r0.z, r0.z, c0.y
                mul r0.z, r0.z, c0.y
                mul r1.w, r1.w, c3.w
                add r1.w, r4.y, r1.w
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mov r2.w, -r2.x
                add r2.w, r2.w, c0.y
                mul r2.w, r4.x, r2.w
                mul r2.w, r1.w, r2.w
                add_pp r1.w, r1.w, r2.w
                mul r0.x, r0.x, c1.y
                mul r0.x, r0.x, c1.y
                add r0.x, r0.x, c4.x
                mul_pp r0.x, r1.w, r0.x
                mul r4.yzw, r0.z, c69.xxyz
                mov r5.xyz, -r2.x
                add r4.yzw, r4, r5.xxyz
                mul r5.xyz, r0.x, c70
                add_pp r4.yzw, r4, r5.xxyz
                mov_pp r5.xyz, c75
                mul r0.x, r2.y, r2.z
                mov_pp r2.xyw, -r4.yzzw
                add_pp r2.xyw, r5.xyzz, r2
                mul_pp r2.xyw, r0.x, r2
                add_pp r2.xyw, r4.yzzw, r2
                mul r0.x, r2.z, r0.x
                add_pp r0.x, r4.x, r0.x
                mul_pp r1.xyz, r1, r3.w
                add_pp r4.xyz, r1, c0.z
                cmp_pp r1.xyz, r4, r1, c0.w
                add_pp r4.xyz, r1, -c0.y
                cmp_pp r1.xyz, r4, c0.y, r1
                add_pp r1.xyz, r3, r1
                texld r3, v3.zwzw, s0
                mul_pp r3.xyz, r3, c79.y
                add_pp r1.xyz, r1, r3
                mul r0.y, r0.y, c3.x
                mov r0.z, -c73.x
                add r0.y, r0.y, r0.z
                add r0.z, r0.y, c0.z
                cmp r0.y, r0.z, r0.y, c0.w
                add r0.z, r0.y, -c0.y
                cmp_pp r0.y, r0.z, c0.y, r0.y
                mul_pp r0.x, r0.x, r0.y
                mov_pp r3.xyz, -r1
                add_pp r2.xyz, r2.xyww, r3
                mul_pp r0.xyz, r0.x, r2
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c81.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c83
                cmp_pp r0.xyz, r1, r0, c83
                mov_pp r0.xyz, r0
                mov_pp r0.xyz, r0
                mov r1.xyz, -c83
                add r1.xyz, r0, r1
                cmp r0.xyz, r1, c83, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.w, -r0.w
                add r0.w, r0.w, c67.x
                mul r0.w, r0.w, c67.y
                add r1.x, r0.w, c0.z
                cmp r0.w, r1.x, r0.w, c0.w
                add r1.x, r0.w, -c0.y
                cmp r0.w, r1.x, c0.y, r0.w
                mov r1.xyz, c68
                mov r2.xyz, -r0
                add r1.xyz, r1, r2
                mul r1.xyz, r0.w, r1
                add r0.xyz, r0, r1
                mov r0.xyz, r0
                mov r0.w, c0.y
                mov oC0, r0
            
            // approximately 242 instruction slots used (6 texture, 236 arithmetic)
            };
    }
}

technique unlit_draw
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudShadowOffset;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float2 DetailOffset;
            //   float2 GalaxyOffset;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 SunDirection;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   gWorld                                      c0       4
            //   gWorldViewProj                              c8       4
            //   SunDirection                                c64      1
            //   SkyColor                                    c65      1
            //   AzimuthColor                                c66      1
            //   AzimuthColorEast                            c67      1
            //   AzimuthHeight                               c68      1
            //   TopCloudBiasDetailThresholdHeight           c69      1
            //   CloudShadowOffset                           c70      1
            //   AzimuthStrength                             c71      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c72      1
            //   StarFieldUVRepeat                           c73      1
            //   GalaxyOffset                                c74      1
            //   DetailOffset                                c75      1
            //
            
                vs_3_0
                def c4, 0, 1, 9.99999975e-006, 1.5
                def c5, 0.5, -0.0187292993, 0.0742610022, -0.212114394
                def c6, 1.57072878, -2, 3.14159274, 1.57079637
                def c7, 0.317732662, 0.100000001, 0, 0
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1.xyz
                dcl_texcoord1 o2.xyz
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                dcl_texcoord5 o6.xyz
                mov r0.x, -v0.y
                max r0.x, r0.x, c4.x
                min r0.x, r0.x, c4.y
                mov r0.x, -r0.x
                add r0.x, r0.x, v0.y
                mul r1, c8, v0.x
                mul r2, r0.x, c9
                add r1, r1, r2
                mul r2, c10, v0.z
                add r1, r1, r2
                mul r2, c11, v0.w
                add r1, r1, r2
                mov r1, r1
                mov r2.xy, v1
                mov r1, r1
                mul r0.yzw, c0.xxyz, v0.x
                mul r3.xyz, r0.x, c1
                add r0.xyz, r0.yzww, r3
                mul r3.xyz, c2, v0.z
                add r0.xyz, r0, r3
                mul r3.xyz, c3, v0.w
                add r0.xyz, r0, r3
                mov r3.xyz, -c3
                add r0.xyz, r0, r3
                mov r2.xy, r2
                add r3.xyz, r0, c4.z
                dp3 r0.w, r3, r3
                rsq r0.w, r0.w
                mul r3.xyz, r3, r0.w
                mov r3.xyz, r3
                mul r0.w, r3.y, c4.w
                add r3.w, r0.w, c5.x
                add r4.xyz, r3.xwzw, c4.z
                dp3 r0.w, r4, r4
                rsq r0.w, r0.w
                mul r4.xy, r4.xzzw, r0.w
                mov r0.w, -r4.x
                max r2.w, r4.x, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.z, r2.w, c5.y
                add r4.z, r4.z, c5.z
                mul r4.z, r2.w, r4.z
                add r4.z, r4.z, c5.w
                mul r2.w, r2.w, r4.z
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.x, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.z, r0.w, c5.x
                mov r0.w, -r4.y
                max r2.w, r4.y, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.x, r2.w, c5.y
                add r4.x, r4.x, c5.z
                mul r4.x, r2.w, r4.x
                add r4.x, r4.x, c5.w
                mul r2.w, r2.w, r4.x
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.y, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.w, r0.w, c5.x
                add r4.zw, r4, c74.xyxy
                mul r4.xy, r4.zwzw, c73.x
                mov r3.zw, -r3.xyxz
                add r3.zw, r3, c64.xyxz
                mov r5.y, c7.y
                mul r5.xy, r5.y, c70.x
                mul r3.zw, r3, r5.xyxy
                mov r5.xy, r2
                mov r3.zw, r3
                mul r5.zw, r5.xyxy, -c6.y
                add r5.zw, r5, -c4.y
                mul r0.w, r5.z, r5.z
                mul r2.w, r5.w, r5.w
                add r0.w, r0.w, r2.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r3.zw, r3, r0.w
                add r6.xy, r2, r3.zwzw
                add r3.zw, r5.xyxy, -c5.x
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                add r3.zw, r3, c4.z
                mul r2.w, r3.z, r3.z
                mul r5.x, r3.w, r3.w
                add r2.w, r2.w, r5.x
                rsq r2.w, r2.w
                mul r3.zw, r3, r2.w
                mul r3.zw, r0.w, r3
                mul r3.zw, r3, c4.y
                mov r3.zw, r3
                mul r3.zw, r3, c72.z
                add r6.zw, r3, c75.xyxy
                add r3.zw, r2.xyxy, -c5.x
                mul r3.zw, r3, c69.w
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                mov r0.w, -r0.w
                add r5.z, r0.w, c4.y
                add r5.xy, r3.zwzw, c5.x
                mov r5.xy, r5
                mov r5.z, r5.z
                rcp r0.w, r1.w
                mul r0.w, r1.z, r0.w
                mov r0.w, -r0.w
                add r2.z, r0.w, c4.y
                mov r3.xy, r3
                mul r0.w, r3.y, c68.x
                max r0.w, r0.w, c4.x
                min r0.w, r0.w, c4.y
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r0.w, r0.w, c71.x
                mov r3.x, r3.x
                mul r2.w, r3.x, c4.y
                add r2.w, r2.w, c4.x
                mul r2.w, r2.w, c5.x
                add r2.w, r2.w, c5.x
                mov r3.xyz, -c67
                add r3.xyz, r3, c66
                mul r3.xyz, r2.w, r3
                add r3.xyz, r3, c67
                mul r3.xyz, r0.w, r3
                add r3.xyz, r3, c65
                mov r3.xyz, r3
                mov r1, r1
                mov r6.xy, r6
                mov r6.zw, r6
                mov r4.xy, r4
                mov r4.zw, r4
                mov r2.xy, r2
                mov r2.z, r2.z
                mov r0.xyz, r0
                mov r5.xy, r5
                mov r5.z, r5.z
                mov r3.xyz, r3
                mov o0, r1
                mov o3, r6
                mov o4, r4
                mov o1.xyz, r2
                mov o2.xyz, r0
                mov o5.xyz, r5
                mov o6.xyz, r3
            
            // approximately 166 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   sampler2D PerlinNoiseSampler;
            //   float4 StarFieldBrightness;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //   float3 gtaSkyDomeFade;
            //   float3 gtaWaterColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SunColor                                    c66      1
            //   gtaSkyDomeFade                              c67      1
            //   gtaWaterColor                               c68      1
            //   CloudColor                                  c69      1
            //   SunsetColor                                 c70      1
            //   CloudThreshold                              c71      1
            //   CloudBias                                   c72      1
            //   CloudFadeOut                                c73      1
            //   TopCloudBiasDetailThresholdHeight           c74      1
            //   TopCloudColor                               c75      1
            //   CloudShadowStrength                         c76      1
            //   CloudInscatteringRange                      c77      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c78      1
            //   StarFieldBrightness                         c79      1
            //   SunSize                                     c80      1
            //   HDRExposure                                 c81      1
            //   HDRSunExposure                              c82      1
            //   HDRExposureClamp                            c83      1
            //   GalaxySampler                               s0       1
            //   PerlinNoiseSampler                          s1       1
            //   HighDetailNoiseSampler                      s2       1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0, 0
                def c1, 25.1599998, 0.5, -0.0625, -0.461699992
                def c2, 0.9375, 0.5, 32, 0.600000024
                def c3, 4, -2, 3, 0.200000003
                def c4, 0.349999994, 0, 0, 0
                dcl_texcoord_pp v0.xy
                dcl_texcoord1_pp v1.xyz
                dcl_texcoord2_pp v2
                dcl_texcoord3_pp v3.zw
                dcl_texcoord4_pp v4.xyz
                dcl_texcoord5_pp v5.xyz
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                mov r0.xyz, v1
                mov_pp r1.xyz, v5
                mov_pp r2.xy, v2
                mov_pp r2.z, v4.z
                mov_pp r0.w, r0.y
                mov_pp r3.xyz, c65
                add r0.xyz, r0, c0.x
                dp3 r1.w, r0, r0
                rsq r1.w, r1.w
                mul_pp r0.xyz, r0, r1.w
                mov_pp r4.xyz, c66
                mov r1.w, c65.w
                mov r3.xyz, r3
                mov r0.xyz, r0
                mov r2.w, c80.x
                mov r3.w, -c82.y
                add r3.w, r3.w, c0.y
                add r4.w, r3.w, c0.z
                cmp r3.w, r4.w, r3.w, c0.w
                add r4.w, r3.w, -c0.y
                cmp r3.w, r4.w, c0.y, r3.w
                mul r3.w, r3.w, c1.x
                dp3 r3.x, r0, r3
                mul r5.x, r3.w, c1.y
                mov r5.yz, c1.xzyw
                mul r3.xyz, r3.x, r5
                mul r5.x, r3.w, c1.w
                mov r5.yz, c2.xxyw
                add r3.xyz, r3, r5
                add r5.xyz, r3, c0.z
                cmp r3.xyz, r5, r3, c0.w
                add r5.xyz, r3, -c0.y
                cmp r3.xyz, r5.zxyw, c0.y, r3.zxyw
                mov r3.w, -r3.y
                mov r4.w, -r3.w
                add r4.w, r3.y, r4.w
                cmp r3.y, r4.w, r3.y, r3.w
                log r3.y, r3.y
                mul r3.y, r3.y, c2.z
                exp r3.y, r3.y
                mov r3.w, -r3.z
                mov r4.w, -r3.w
                add r4.w, r3.z, r4.w
                cmp r3.z, r4.w, r3.z, r3.w
                mul r3.w, r3.z, c0.y
                mul r3.z, r3.z, r3.z
                mul r3.z, r3.w, r3.z
                add r1.w, r1.w, c2.w
                add r3.w, r1.w, c0.z
                cmp r1.w, r3.w, r1.w, c0.w
                add r3.w, r1.w, -c0.y
                cmp r1.w, r3.w, c0.y, r1.w
                mul r1.w, r3.z, r1.w
                mov r1.w, -r1.w
                add r1.w, r3.y, r1.w
                mul r2.w, r2.w, r3.x
                add r1.w, r1.w, r2.w
                mul r1.w, r1.w, c1.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mul r1.w, r1.w, c3.x
                mov r2.w, c64.x
                mov r3.y, c64.y
                mov r3.x, r3.x
                mul r3.x, r3.y, r3.x
                add r2.w, r2.w, r3.x
                add r3.x, r2.w, c0.z
                cmp r2.w, r3.x, r2.w, c0.w
                add r3.x, r2.w, -c0.y
                cmp r2.w, r3.x, c0.y, r2.w
                mul r3.x, r2.w, r2.w
                mul r2.w, r2.w, c3.y
                add r2.w, r2.w, c3.z
                mul r2.w, r3.x, r2.w
                mul r2.w, r2.w, c64.z
                add r3.xyz, r1.w, r2.w
                mov r1.w, -r3.z
                add r1.w, r1.w, c0.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp_pp r3.w, r2.w, c0.y, r1.w
                mov_pp r3.xyz, r3
                mov_pp r3, r3
                mul_pp r4.xyz, r4, r3
                mov_pp r5.xyz, -r4
                mov_pp r6.xyz, -r5
                add_pp r6.xyz, r4, r6
                cmp_pp r5.xyz, r6, r4, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, c0.y
                add_pp r3.xyz, r4, r5
                mul_pp r3, r3, c82.x
                mov_pp r1.xyz, r1
                mov_pp r2.xyz, r2
                mov_pp r3, r3
                texld_pp r4, v0, s1
                mov_pp r4.xy, r4.xzzw
                texld r5, v2.zwzw, s2
                add r1.w, r5.x, -c1.y
                mul r2.w, r1.w, c78.w
                add_pp r4.x, r4.x, r2.w
                mul r4.x, r4.x, c71.x
                mov r4.z, -c72.x
                add r4.x, r4.x, r4.z
                add r4.w, r4.x, c0.z
                cmp r4.x, r4.w, r4.x, c0.w
                add r4.w, r4.x, -c0.y
                cmp r4.x, r4.w, c0.y, r4.x
                mov_pp r4.w, -r4.x
                mov_pp r5.x, -r4.w
                add_pp r5.x, r4.x, r5.x
                cmp_pp r4.w, r5.x, r4.x, r4.w
                log r4.w, r4.w
                mul r4.w, r4.w, c78.x
                exp r4.w, r4.w
                mul r4.x, r4.x, c78.y
                add r5.x, r4.x, c0.z
                cmp r4.x, r5.x, r4.x, c0.w
                add r5.x, r4.x, -c0.y
                cmp r4.x, r5.x, c0.y, r4.x
                mul r4.x, r4.w, r4.x
                texld_pp r5, v2, s1
                mov_pp r5.x, r5.x
                mul r2.xy, r2, c78.z
                texld r6, r2, s2
                mul r2.x, r6.x, c78.w
                mul r2.x, r2.x, c3.w
                add_pp r2.x, r5.x, r2.x
                mul r2.x, r2.x, c71.x
                add r2.x, r4.z, r2.x
                mul r2.x, r2.x, c76.x
                add r2.y, r2.x, c0.z
                cmp r2.x, r2.y, r2.x, c0.w
                add r2.y, r2.x, -c0.y
                cmp r2.x, r2.y, c0.y, r2.x
                texld_pp r5, v4, s1
                mov_pp r2.y, r5.y
                mul r2.w, r2.w, c74.y
                add_pp r2.y, r2.y, r2.w
                mul r2.y, r2.y, c74.z
                mov r2.w, -c74.x
                add r2.y, r2.y, r2.w
                add r2.w, r2.y, c0.z
                cmp r2.y, r2.w, r2.y, c0.w
                add r2.w, r2.y, -c0.y
                cmp r2.y, r2.w, c0.y, r2.y
                mul_pp r2.y, r2.z, r2.y
                dp3 r0.x, r0, c65
                mul_pp r0.z, r0.x, r0.x
                mov r2.z, -r4.x
                add r2.z, r2.z, c0.y
                mul r2.w, r2.x, c1.y
                mov r2.w, -r2.w
                add r2.w, r2.z, r2.w
                add r4.z, r2.w, c0.z
                cmp r2.w, r4.z, r2.w, c0.w
                add r4.z, r2.w, -c0.y
                cmp r2.w, r4.z, c0.y, r2.w
                mul r0.z, r0.z, r2.w
                mul r0.z, r0.z, c77.x
                add_pp r0.z, r0.z, c0.y
                mul r0.z, r0.z, c0.y
                mul r1.w, r1.w, c3.w
                add r1.w, r4.y, r1.w
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mov r2.w, -r2.x
                add r2.w, r2.w, c0.y
                mul r2.w, r4.x, r2.w
                mul r2.w, r1.w, r2.w
                add_pp r1.w, r1.w, r2.w
                mul r0.x, r0.x, c1.y
                mul r0.x, r0.x, c1.y
                add r0.x, r0.x, c4.x
                mul_pp r0.x, r1.w, r0.x
                mul r4.yzw, r0.z, c69.xxyz
                mov r5.xyz, -r2.x
                add r4.yzw, r4, r5.xxyz
                mul r5.xyz, r0.x, c70
                add_pp r4.yzw, r4, r5.xxyz
                mov_pp r5.xyz, c75
                mul r0.x, r2.y, r2.z
                mov_pp r2.xyw, -r4.yzzw
                add_pp r2.xyw, r5.xyzz, r2
                mul_pp r2.xyw, r0.x, r2
                add_pp r2.xyw, r4.yzzw, r2
                mul r0.x, r2.z, r0.x
                add_pp r0.x, r4.x, r0.x
                mul_pp r1.xyz, r1, r3.w
                add_pp r4.xyz, r1, c0.z
                cmp_pp r1.xyz, r4, r1, c0.w
                add_pp r4.xyz, r1, -c0.y
                cmp_pp r1.xyz, r4, c0.y, r1
                add_pp r1.xyz, r3, r1
                texld r3, v3.zwzw, s0
                mul_pp r3.xyz, r3, c79.y
                add_pp r1.xyz, r1, r3
                mul r0.y, r0.y, c3.x
                mov r0.z, -c73.x
                add r0.y, r0.y, r0.z
                add r0.z, r0.y, c0.z
                cmp r0.y, r0.z, r0.y, c0.w
                add r0.z, r0.y, -c0.y
                cmp_pp r0.y, r0.z, c0.y, r0.y
                mul_pp r0.x, r0.x, r0.y
                mov_pp r3.xyz, -r1
                add_pp r2.xyz, r2.xyww, r3
                mul_pp r0.xyz, r0.x, r2
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c81.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c83
                cmp_pp r0.xyz, r1, r0, c83
                mov_pp r0.xyz, r0
                mov_pp r0.xyz, r0
                mov r1.xyz, -c83
                add r1.xyz, r0, r1
                cmp r0.xyz, r1, c83, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.w, -r0.w
                add r0.w, r0.w, c67.x
                mul r0.w, r0.w, c67.y
                add r1.x, r0.w, c0.z
                cmp r0.w, r1.x, r0.w, c0.w
                add r1.x, r0.w, -c0.y
                cmp r0.w, r1.x, c0.y, r0.w
                mov r1.xyz, c68
                mov r2.xyz, -r0
                add r1.xyz, r1, r2
                mul r1.xyz, r0.w, r1
                add r0.xyz, r0, r1
                mov r0.xyz, r0
                mov r0.w, c0.y
                mov oC0, r0
            
            // approximately 242 instruction slots used (6 texture, 236 arithmetic)
            };
    }
}

technique dpskyfront_draw
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudShadowOffset;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float2 DetailOffset;
            //   float2 GalaxyOffset;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 SunDirection;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float dpMapFarClip;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   gWorld                                      c0       4
            //   gWorldViewProj                              c8       4
            //   SunDirection                                c64      1
            //   SkyColor                                    c65      1
            //   AzimuthColor                                c66      1
            //   AzimuthColorEast                            c67      1
            //   AzimuthHeight                               c68      1
            //   TopCloudBiasDetailThresholdHeight           c69      1
            //   CloudShadowOffset                           c70      1
            //   AzimuthStrength                             c71      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c72      1
            //   StarFieldUVRepeat                           c73      1
            //   GalaxyOffset                                c74      1
            //   DetailOffset                                c75      1
            //   dpMapFarClip                                c76      1
            //
            
                vs_3_0
                def c4, 0.317732662, 0.100000001, 0, 0
                def c5, 1, 0.5, -0.5, 9.99999975e-006
                def c6, 1.5, -0.0187292993, 0.0742610022, -0.212114394
                def c7, 1.57072878, -2, 3.14159274, 1.57079637
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1.xyz
                dcl_texcoord1 o2.xyz
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                dcl_texcoord5 o6.xyz
                mul r0, c8, v0.x
                mul r1, c9, v0.y
                add r0, r0, r1
                mul r1, c10, v0.z
                add r0, r0, r1
                mov r1.x, c5.x
                mul r1, r1.x, c11
                add r0, r0, r1
                mov r1.x, r0.z
                mov r1.y, -r0.w
                max r0.w, r0.w, r1.y
                rcp r2.x, r0.w
                rcp r2.y, r0.w
                rcp r2.z, r0.w
                mul r0.xyz, r0, r2
                dp3 r0.w, r0, r0
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                rcp r2.x, r0.w
                rcp r2.y, r0.w
                rcp r2.z, r0.w
                mul r0.xyz, r0, r2
                add r0.z, r0.z, c5.x
                rcp r0.z, r0.z
                mul r0.x, r0.x, r0.z
                mul r2.y, r0.y, r0.z
                rcp r0.y, c76.x
                mul r2.z, r1.x, r0.y
                mul r0.x, r0.x, c5.y
                add r2.x, r0.x, c5.z
                mov r2.x, r2.x
                mov r2.y, r2.y
                mov r2.z, r2.z
                mov r2.w, c5.x
                mov r2, r2
                mov r2, r2
                mov r0.xy, v1
                mov r2, r2
                mul r1.xyz, c0, v0.x
                mul r3.xyz, c1, v0.y
                add r1.xyz, r1, r3
                mul r3.xyz, c2, v0.z
                add r1.xyz, r1, r3
                mul r3.xyz, c3, v0.w
                add r1.xyz, r1, r3
                mov r3.xyz, -c3
                add r1.xyz, r1, r3
                mov r0.xy, r0
                add r3.xyz, r1, c5.w
                dp3 r0.w, r3, r3
                rsq r0.w, r0.w
                mul r3.xyz, r3, r0.w
                mov r3.xyz, r3
                mul r0.w, r3.y, c6.x
                add r3.w, r0.w, c5.y
                add r4.xyz, r3.xwzw, c5.w
                dp3 r0.w, r4, r4
                rsq r0.w, r0.w
                mul r4.xy, r4.xzzw, r0.w
                mov r0.w, -r4.x
                max r1.w, r4.x, r0.w
                mov r3.w, -r1.w
                add r3.w, r3.w, c5.x
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.z, r1.w, c6.y
                add r4.z, r4.z, c6.z
                mul r4.z, r1.w, r4.z
                add r4.z, r4.z, c6.w
                mul r1.w, r1.w, r4.z
                add r1.w, r1.w, c7.x
                mul r1.w, r3.w, r1.w
                mul r3.w, r1.w, c7.y
                add r3.w, r3.w, c7.z
                slt r0.w, r4.x, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r1.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c7.w
                mul r0.w, r0.w, c4.x
                add r4.z, r0.w, c5.y
                mov r0.w, -r4.y
                max r1.w, r4.y, r0.w
                mov r3.w, -r1.w
                add r3.w, r3.w, c5.x
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.x, r1.w, c6.y
                add r4.x, r4.x, c6.z
                mul r4.x, r1.w, r4.x
                add r4.x, r4.x, c6.w
                mul r1.w, r1.w, r4.x
                add r1.w, r1.w, c7.x
                mul r1.w, r3.w, r1.w
                mul r3.w, r1.w, c7.y
                add r3.w, r3.w, c7.z
                slt r0.w, r4.y, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r1.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c7.w
                mul r0.w, r0.w, c4.x
                add r4.w, r0.w, c5.y
                add r4.zw, r4, c74.xyxy
                mul r4.xy, r4.zwzw, c73.x
                mov r3.zw, -r3.xyxz
                add r3.zw, r3, c64.xyxz
                mov r5.y, c4.y
                mul r5.xy, r5.y, c70.x
                mul r3.zw, r3, r5.xyxy
                mov r5.xy, r0
                mov r3.zw, r3
                mul r5.zw, r5.xyxy, -c7.y
                add r5.zw, r5, -c5.x
                mul r0.w, r5.z, r5.z
                mul r1.w, r5.w, r5.w
                add r0.w, r0.w, r1.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c5.x
                mul r3.zw, r3, r0.w
                add r6.xy, r0, r3.zwzw
                add r3.zw, r5.xyxy, c5.z
                mul r0.w, r3.z, r3.z
                mul r1.w, r3.w, r3.w
                add r0.w, r0.w, r1.w
                add r3.zw, r3, c5.w
                mul r1.w, r3.z, r3.z
                mul r5.x, r3.w, r3.w
                add r1.w, r1.w, r5.x
                rsq r1.w, r1.w
                mul r3.zw, r3, r1.w
                mul r3.zw, r0.w, r3
                mul r3.zw, r3, c5.x
                mov r3.zw, r3
                mul r3.zw, r3, c72.z
                add r6.zw, r3, c75.xyxy
                add r3.zw, r0.xyxy, c5.z
                mul r3.zw, r3, c69.w
                mul r0.w, r3.z, r3.z
                mul r1.w, r3.w, r3.w
                add r0.w, r0.w, r1.w
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                mov r0.w, -r0.w
                add r5.z, r0.w, c5.x
                add r5.xy, r3.zwzw, c5.y
                mov r5.xy, r5
                mov r5.z, r5.z
                mul r0.w, r2.z, c5.x
                mov r0.w, -r0.w
                add r0.z, r0.w, c5.x
                mov r3.xy, r3
                mul r0.w, r3.y, c68.x
                max r0.w, r0.w, c4.z
                min r0.w, r0.w, c5.x
                mov r0.w, -r0.w
                add r0.w, r0.w, c5.x
                mul r0.w, r0.w, c71.x
                mov r3.x, r3.x
                mul r1.w, r3.x, c5.x
                add r1.w, r1.w, c4.z
                mul r1.w, r1.w, c5.y
                add r1.w, r1.w, c5.y
                mov r3.xyz, -c67
                add r3.xyz, r3, c66
                mul r3.xyz, r1.w, r3
                add r3.xyz, r3, c67
                mul r3.xyz, r0.w, r3
                add r3.xyz, r3, c65
                mov r3.xyz, r3
                mov r2, r2
                mov r6.xy, r6
                mov r6.zw, r6
                mov r4.xy, r4
                mov r4.zw, r4
                mov r0.xy, r0
                mov r0.z, r0.z
                mov r1.xyz, r1
                mov r5.xy, r5
                mov r5.z, r5.z
                mov r3.xyz, r3
                mov o0, r2
                mov o3, r6
                mov o4, r4
                mov o1.xyz, r0
                mov o2.xyz, r1
                mov o5.xyz, r5
                mov o6.xyz, r3
            
            // approximately 188 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   sampler2D PerlinNoiseSampler;
            //   float4 StarFieldBrightness;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //   float3 gtaSkyDomeFade;
            //   float3 gtaWaterColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SunColor                                    c66      1
            //   gtaSkyDomeFade                              c67      1
            //   gtaWaterColor                               c68      1
            //   CloudColor                                  c69      1
            //   SunsetColor                                 c70      1
            //   CloudThreshold                              c71      1
            //   CloudBias                                   c72      1
            //   CloudFadeOut                                c73      1
            //   TopCloudBiasDetailThresholdHeight           c74      1
            //   TopCloudColor                               c75      1
            //   CloudShadowStrength                         c76      1
            //   CloudInscatteringRange                      c77      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c78      1
            //   StarFieldBrightness                         c79      1
            //   SunSize                                     c80      1
            //   HDRExposure                                 c81      1
            //   HDRSunExposure                              c82      1
            //   HDRExposureClamp                            c83      1
            //   GalaxySampler                               s0       1
            //   PerlinNoiseSampler                          s1       1
            //   HighDetailNoiseSampler                      s2       1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0, 0
                def c1, 25.1599998, 0.5, -0.0625, -0.461699992
                def c2, 0.9375, 0.5, 32, 0.600000024
                def c3, 4, -2, 3, 0.200000003
                def c4, 0.349999994, 0, 0, 0
                dcl_texcoord_pp v0.xy
                dcl_texcoord1_pp v1.xyz
                dcl_texcoord2_pp v2
                dcl_texcoord3_pp v3.zw
                dcl_texcoord4_pp v4.xyz
                dcl_texcoord5_pp v5.xyz
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                mov r0.xyz, v1
                mov_pp r1.xyz, v5
                mov_pp r2.xy, v2
                mov_pp r2.z, v4.z
                mov_pp r0.w, r0.y
                mov_pp r3.xyz, c65
                add r0.xyz, r0, c0.x
                dp3 r1.w, r0, r0
                rsq r1.w, r1.w
                mul_pp r0.xyz, r0, r1.w
                mov_pp r4.xyz, c66
                mov r1.w, c65.w
                mov r3.xyz, r3
                mov r0.xyz, r0
                mov r2.w, c80.x
                mov r3.w, -c82.y
                add r3.w, r3.w, c0.y
                add r4.w, r3.w, c0.z
                cmp r3.w, r4.w, r3.w, c0.w
                add r4.w, r3.w, -c0.y
                cmp r3.w, r4.w, c0.y, r3.w
                mul r3.w, r3.w, c1.x
                dp3 r3.x, r0, r3
                mul r5.x, r3.w, c1.y
                mov r5.yz, c1.xzyw
                mul r3.xyz, r3.x, r5
                mul r5.x, r3.w, c1.w
                mov r5.yz, c2.xxyw
                add r3.xyz, r3, r5
                add r5.xyz, r3, c0.z
                cmp r3.xyz, r5, r3, c0.w
                add r5.xyz, r3, -c0.y
                cmp r3.xyz, r5.zxyw, c0.y, r3.zxyw
                mov r3.w, -r3.y
                mov r4.w, -r3.w
                add r4.w, r3.y, r4.w
                cmp r3.y, r4.w, r3.y, r3.w
                log r3.y, r3.y
                mul r3.y, r3.y, c2.z
                exp r3.y, r3.y
                mov r3.w, -r3.z
                mov r4.w, -r3.w
                add r4.w, r3.z, r4.w
                cmp r3.z, r4.w, r3.z, r3.w
                mul r3.w, r3.z, c0.y
                mul r3.z, r3.z, r3.z
                mul r3.z, r3.w, r3.z
                add r1.w, r1.w, c2.w
                add r3.w, r1.w, c0.z
                cmp r1.w, r3.w, r1.w, c0.w
                add r3.w, r1.w, -c0.y
                cmp r1.w, r3.w, c0.y, r1.w
                mul r1.w, r3.z, r1.w
                mov r1.w, -r1.w
                add r1.w, r3.y, r1.w
                mul r2.w, r2.w, r3.x
                add r1.w, r1.w, r2.w
                mul r1.w, r1.w, c1.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mul r1.w, r1.w, c3.x
                mov r2.w, c64.x
                mov r3.y, c64.y
                mov r3.x, r3.x
                mul r3.x, r3.y, r3.x
                add r2.w, r2.w, r3.x
                add r3.x, r2.w, c0.z
                cmp r2.w, r3.x, r2.w, c0.w
                add r3.x, r2.w, -c0.y
                cmp r2.w, r3.x, c0.y, r2.w
                mul r3.x, r2.w, r2.w
                mul r2.w, r2.w, c3.y
                add r2.w, r2.w, c3.z
                mul r2.w, r3.x, r2.w
                mul r2.w, r2.w, c64.z
                add r3.xyz, r1.w, r2.w
                mov r1.w, -r3.z
                add r1.w, r1.w, c0.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp_pp r3.w, r2.w, c0.y, r1.w
                mov_pp r3.xyz, r3
                mov_pp r3, r3
                mul_pp r4.xyz, r4, r3
                mov_pp r5.xyz, -r4
                mov_pp r6.xyz, -r5
                add_pp r6.xyz, r4, r6
                cmp_pp r5.xyz, r6, r4, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, c0.y
                add_pp r3.xyz, r4, r5
                mul_pp r3, r3, c82.x
                mov_pp r1.xyz, r1
                mov_pp r2.xyz, r2
                mov_pp r3, r3
                texld_pp r4, v0, s1
                mov_pp r4.xy, r4.xzzw
                texld r5, v2.zwzw, s2
                add r1.w, r5.x, -c1.y
                mul r2.w, r1.w, c78.w
                add_pp r4.x, r4.x, r2.w
                mul r4.x, r4.x, c71.x
                mov r4.z, -c72.x
                add r4.x, r4.x, r4.z
                add r4.w, r4.x, c0.z
                cmp r4.x, r4.w, r4.x, c0.w
                add r4.w, r4.x, -c0.y
                cmp r4.x, r4.w, c0.y, r4.x
                mov_pp r4.w, -r4.x
                mov_pp r5.x, -r4.w
                add_pp r5.x, r4.x, r5.x
                cmp_pp r4.w, r5.x, r4.x, r4.w
                log r4.w, r4.w
                mul r4.w, r4.w, c78.x
                exp r4.w, r4.w
                mul r4.x, r4.x, c78.y
                add r5.x, r4.x, c0.z
                cmp r4.x, r5.x, r4.x, c0.w
                add r5.x, r4.x, -c0.y
                cmp r4.x, r5.x, c0.y, r4.x
                mul r4.x, r4.w, r4.x
                texld_pp r5, v2, s1
                mov_pp r5.x, r5.x
                mul r2.xy, r2, c78.z
                texld r6, r2, s2
                mul r2.x, r6.x, c78.w
                mul r2.x, r2.x, c3.w
                add_pp r2.x, r5.x, r2.x
                mul r2.x, r2.x, c71.x
                add r2.x, r4.z, r2.x
                mul r2.x, r2.x, c76.x
                add r2.y, r2.x, c0.z
                cmp r2.x, r2.y, r2.x, c0.w
                add r2.y, r2.x, -c0.y
                cmp r2.x, r2.y, c0.y, r2.x
                texld_pp r5, v4, s1
                mov_pp r2.y, r5.y
                mul r2.w, r2.w, c74.y
                add_pp r2.y, r2.y, r2.w
                mul r2.y, r2.y, c74.z
                mov r2.w, -c74.x
                add r2.y, r2.y, r2.w
                add r2.w, r2.y, c0.z
                cmp r2.y, r2.w, r2.y, c0.w
                add r2.w, r2.y, -c0.y
                cmp r2.y, r2.w, c0.y, r2.y
                mul_pp r2.y, r2.z, r2.y
                dp3 r0.x, r0, c65
                mul_pp r0.z, r0.x, r0.x
                mov r2.z, -r4.x
                add r2.z, r2.z, c0.y
                mul r2.w, r2.x, c1.y
                mov r2.w, -r2.w
                add r2.w, r2.z, r2.w
                add r4.z, r2.w, c0.z
                cmp r2.w, r4.z, r2.w, c0.w
                add r4.z, r2.w, -c0.y
                cmp r2.w, r4.z, c0.y, r2.w
                mul r0.z, r0.z, r2.w
                mul r0.z, r0.z, c77.x
                add_pp r0.z, r0.z, c0.y
                mul r0.z, r0.z, c0.y
                mul r1.w, r1.w, c3.w
                add r1.w, r4.y, r1.w
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mov r2.w, -r2.x
                add r2.w, r2.w, c0.y
                mul r2.w, r4.x, r2.w
                mul r2.w, r1.w, r2.w
                add_pp r1.w, r1.w, r2.w
                mul r0.x, r0.x, c1.y
                mul r0.x, r0.x, c1.y
                add r0.x, r0.x, c4.x
                mul_pp r0.x, r1.w, r0.x
                mul r4.yzw, r0.z, c69.xxyz
                mov r5.xyz, -r2.x
                add r4.yzw, r4, r5.xxyz
                mul r5.xyz, r0.x, c70
                add_pp r4.yzw, r4, r5.xxyz
                mov_pp r5.xyz, c75
                mul r0.x, r2.y, r2.z
                mov_pp r2.xyw, -r4.yzzw
                add_pp r2.xyw, r5.xyzz, r2
                mul_pp r2.xyw, r0.x, r2
                add_pp r2.xyw, r4.yzzw, r2
                mul r0.x, r2.z, r0.x
                add_pp r0.x, r4.x, r0.x
                mul_pp r1.xyz, r1, r3.w
                add_pp r4.xyz, r1, c0.z
                cmp_pp r1.xyz, r4, r1, c0.w
                add_pp r4.xyz, r1, -c0.y
                cmp_pp r1.xyz, r4, c0.y, r1
                add_pp r1.xyz, r3, r1
                texld r3, v3.zwzw, s0
                mul_pp r3.xyz, r3, c79.y
                add_pp r1.xyz, r1, r3
                mul r0.y, r0.y, c3.x
                mov r0.z, -c73.x
                add r0.y, r0.y, r0.z
                add r0.z, r0.y, c0.z
                cmp r0.y, r0.z, r0.y, c0.w
                add r0.z, r0.y, -c0.y
                cmp_pp r0.y, r0.z, c0.y, r0.y
                mul_pp r0.x, r0.x, r0.y
                mov_pp r3.xyz, -r1
                add_pp r2.xyz, r2.xyww, r3
                mul_pp r0.xyz, r0.x, r2
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c81.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c83
                cmp_pp r0.xyz, r1, r0, c83
                mov_pp r0.xyz, r0
                mov_pp r0.xyz, r0
                mov r1.xyz, -c83
                add r1.xyz, r0, r1
                cmp r0.xyz, r1, c83, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.w, -r0.w
                add r0.w, r0.w, c67.x
                mul r0.w, r0.w, c67.y
                add r1.x, r0.w, c0.z
                cmp r0.w, r1.x, r0.w, c0.w
                add r1.x, r0.w, -c0.y
                cmp r0.w, r1.x, c0.y, r0.w
                mov r1.xyz, c68
                mov r2.xyz, -r0
                add r1.xyz, r1, r2
                mul r1.xyz, r0.w, r1
                add r0.xyz, r0, r1
                mov r0.xyz, r0
                mov r0.w, c0.y
                mov oC0, r0
            
            // approximately 242 instruction slots used (6 texture, 236 arithmetic)
            };
    }
}

technique dpskyback_draw
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudShadowOffset;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float2 DetailOffset;
            //   float2 GalaxyOffset;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 SunDirection;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float dpMapFarClip;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   gWorld                                      c0       4
            //   gWorldViewProj                              c8       4
            //   SunDirection                                c64      1
            //   SkyColor                                    c65      1
            //   AzimuthColor                                c66      1
            //   AzimuthColorEast                            c67      1
            //   AzimuthHeight                               c68      1
            //   TopCloudBiasDetailThresholdHeight           c69      1
            //   CloudShadowOffset                           c70      1
            //   AzimuthStrength                             c71      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c72      1
            //   StarFieldUVRepeat                           c73      1
            //   GalaxyOffset                                c74      1
            //   DetailOffset                                c75      1
            //   dpMapFarClip                                c76      1
            //
            
                vs_3_0
                def c4, 0.100000001, 0, 0, 0
                def c5, 1, 0.5, 9.99999975e-006, 1.5
                def c6, -0.0187292993, 0.0742610022, -0.212114394, 1.57072878
                def c7, -2, 3.14159274, 1.57079637, 0.317732662
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1.xyz
                dcl_texcoord1 o2.xyz
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                dcl_texcoord5 o6.xyz
                mul r0, c8, v0.x
                mul r1, c9, v0.y
                add r0, r0, r1
                mul r1, c10, v0.z
                add r0, r0, r1
                mov r1.x, c5.x
                mul r1, r1.x, c11
                add r0, r0, r1
                mov r1.x, r0.z
                mov r1.y, -r0.w
                max r0.w, r0.w, r1.y
                rcp r2.x, r0.w
                rcp r2.y, r0.w
                rcp r2.z, r0.w
                mul r0.xyz, r0, r2
                dp3 r0.w, r0, r0
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                rcp r2.x, r0.w
                rcp r2.y, r0.w
                rcp r2.z, r0.w
                mul r0.xyz, r0, r2
                add r0.z, r0.z, c5.x
                rcp r0.z, r0.z
                mul r0.x, r0.x, r0.z
                mul r2.y, r0.y, r0.z
                rcp r0.y, c76.x
                mul r2.z, r1.x, r0.y
                mul r0.x, r0.x, c5.y
                add r2.x, r0.x, c5.y
                mov r2.x, r2.x
                mov r2.y, r2.y
                mov r2.z, r2.z
                mov r2.w, c5.x
                mov r2, r2
                mov r2, r2
                mov r0.xy, v1
                mov r2, r2
                mul r1.xyz, c0, v0.x
                mul r3.xyz, c1, v0.y
                add r1.xyz, r1, r3
                mul r3.xyz, c2, v0.z
                add r1.xyz, r1, r3
                mul r3.xyz, c3, v0.w
                add r1.xyz, r1, r3
                mov r3.xyz, -c3
                add r1.xyz, r1, r3
                mov r0.xy, r0
                add r3.xyz, r1, c5.z
                dp3 r0.w, r3, r3
                rsq r0.w, r0.w
                mul r3.xyz, r3, r0.w
                mov r3.xyz, r3
                mul r0.w, r3.y, c5.w
                add r3.w, r0.w, c5.y
                add r4.xyz, r3.xwzw, c5.z
                dp3 r0.w, r4, r4
                rsq r0.w, r0.w
                mul r4.xy, r4.xzzw, r0.w
                mov r0.w, -r4.x
                max r1.w, r4.x, r0.w
                mov r3.w, -r1.w
                add r3.w, r3.w, c5.x
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.z, r1.w, c6.x
                add r4.z, r4.z, c6.y
                mul r4.z, r1.w, r4.z
                add r4.z, r4.z, c6.z
                mul r1.w, r1.w, r4.z
                add r1.w, r1.w, c6.w
                mul r1.w, r3.w, r1.w
                mul r3.w, r1.w, c7.x
                add r3.w, r3.w, c7.y
                slt r0.w, r4.x, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r1.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c7.z
                mul r0.w, r0.w, c7.w
                add r4.z, r0.w, c5.y
                mov r0.w, -r4.y
                max r1.w, r4.y, r0.w
                mov r3.w, -r1.w
                add r3.w, r3.w, c5.x
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.x, r1.w, c6.x
                add r4.x, r4.x, c6.y
                mul r4.x, r1.w, r4.x
                add r4.x, r4.x, c6.z
                mul r1.w, r1.w, r4.x
                add r1.w, r1.w, c6.w
                mul r1.w, r3.w, r1.w
                mul r3.w, r1.w, c7.x
                add r3.w, r3.w, c7.y
                slt r0.w, r4.y, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r1.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c7.z
                mul r0.w, r0.w, c7.w
                add r4.w, r0.w, c5.y
                add r4.zw, r4, c74.xyxy
                mul r4.xy, r4.zwzw, c73.x
                mov r3.zw, -r3.xyxz
                add r3.zw, r3, c64.xyxz
                mov r5.x, c4.x
                mul r5.xy, r5.x, c70.x
                mul r3.zw, r3, r5.xyxy
                mov r5.xy, r0
                mov r3.zw, r3
                mul r5.zw, r5.xyxy, -c7.x
                add r5.zw, r5, -c5.x
                mul r0.w, r5.z, r5.z
                mul r1.w, r5.w, r5.w
                add r0.w, r0.w, r1.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c5.x
                mul r3.zw, r3, r0.w
                add r6.xy, r0, r3.zwzw
                add r3.zw, r5.xyxy, -c5.y
                mul r0.w, r3.z, r3.z
                mul r1.w, r3.w, r3.w
                add r0.w, r0.w, r1.w
                add r3.zw, r3, c5.z
                mul r1.w, r3.z, r3.z
                mul r5.x, r3.w, r3.w
                add r1.w, r1.w, r5.x
                rsq r1.w, r1.w
                mul r3.zw, r3, r1.w
                mul r3.zw, r0.w, r3
                mul r3.zw, r3, c5.x
                mov r3.zw, r3
                mul r3.zw, r3, c72.z
                add r6.zw, r3, c75.xyxy
                add r3.zw, r0.xyxy, -c5.y
                mul r3.zw, r3, c69.w
                mul r0.w, r3.z, r3.z
                mul r1.w, r3.w, r3.w
                add r0.w, r0.w, r1.w
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                mov r0.w, -r0.w
                add r5.z, r0.w, c5.x
                add r5.xy, r3.zwzw, c5.y
                mov r5.xy, r5
                mov r5.z, r5.z
                mul r0.w, r2.z, c5.x
                mov r0.w, -r0.w
                add r0.z, r0.w, c5.x
                mov r3.xy, r3
                mul r0.w, r3.y, c68.x
                max r0.w, r0.w, c4.y
                min r0.w, r0.w, c5.x
                mov r0.w, -r0.w
                add r0.w, r0.w, c5.x
                mul r0.w, r0.w, c71.x
                mov r3.x, r3.x
                mul r1.w, r3.x, c5.x
                add r1.w, r1.w, c4.y
                mul r1.w, r1.w, c5.y
                add r1.w, r1.w, c5.y
                mov r3.xyz, -c67
                add r3.xyz, r3, c66
                mul r3.xyz, r1.w, r3
                add r3.xyz, r3, c67
                mul r3.xyz, r0.w, r3
                add r3.xyz, r3, c65
                mov r3.xyz, r3
                mov r2, r2
                mov r6.xy, r6
                mov r6.zw, r6
                mov r4.xy, r4
                mov r4.zw, r4
                mov r0.xy, r0
                mov r0.z, r0.z
                mov r1.xyz, r1
                mov r5.xy, r5
                mov r5.z, r5.z
                mov r3.xyz, r3
                mov o0, r2
                mov o3, r6
                mov o4, r4
                mov o1.xyz, r0
                mov o2.xyz, r1
                mov o5.xyz, r5
                mov o6.xyz, r3
            
            // approximately 188 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   sampler2D PerlinNoiseSampler;
            //   float4 StarFieldBrightness;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //   float3 gtaSkyDomeFade;
            //   float3 gtaWaterColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SunColor                                    c66      1
            //   gtaSkyDomeFade                              c67      1
            //   gtaWaterColor                               c68      1
            //   CloudColor                                  c69      1
            //   SunsetColor                                 c70      1
            //   CloudThreshold                              c71      1
            //   CloudBias                                   c72      1
            //   CloudFadeOut                                c73      1
            //   TopCloudBiasDetailThresholdHeight           c74      1
            //   TopCloudColor                               c75      1
            //   CloudShadowStrength                         c76      1
            //   CloudInscatteringRange                      c77      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c78      1
            //   StarFieldBrightness                         c79      1
            //   SunSize                                     c80      1
            //   HDRExposure                                 c81      1
            //   HDRSunExposure                              c82      1
            //   HDRExposureClamp                            c83      1
            //   GalaxySampler                               s0       1
            //   PerlinNoiseSampler                          s1       1
            //   HighDetailNoiseSampler                      s2       1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0, 0
                def c1, 25.1599998, 0.5, -0.0625, -0.461699992
                def c2, 0.9375, 0.5, 32, 0.600000024
                def c3, 4, -2, 3, 0.200000003
                def c4, 0.349999994, 0, 0, 0
                dcl_texcoord_pp v0.xy
                dcl_texcoord1_pp v1.xyz
                dcl_texcoord2_pp v2
                dcl_texcoord3_pp v3.zw
                dcl_texcoord4_pp v4.xyz
                dcl_texcoord5_pp v5.xyz
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                mov r0.xyz, v1
                mov_pp r1.xyz, v5
                mov_pp r2.xy, v2
                mov_pp r2.z, v4.z
                mov_pp r0.w, r0.y
                mov_pp r3.xyz, c65
                add r0.xyz, r0, c0.x
                dp3 r1.w, r0, r0
                rsq r1.w, r1.w
                mul_pp r0.xyz, r0, r1.w
                mov_pp r4.xyz, c66
                mov r1.w, c65.w
                mov r3.xyz, r3
                mov r0.xyz, r0
                mov r2.w, c80.x
                mov r3.w, -c82.y
                add r3.w, r3.w, c0.y
                add r4.w, r3.w, c0.z
                cmp r3.w, r4.w, r3.w, c0.w
                add r4.w, r3.w, -c0.y
                cmp r3.w, r4.w, c0.y, r3.w
                mul r3.w, r3.w, c1.x
                dp3 r3.x, r0, r3
                mul r5.x, r3.w, c1.y
                mov r5.yz, c1.xzyw
                mul r3.xyz, r3.x, r5
                mul r5.x, r3.w, c1.w
                mov r5.yz, c2.xxyw
                add r3.xyz, r3, r5
                add r5.xyz, r3, c0.z
                cmp r3.xyz, r5, r3, c0.w
                add r5.xyz, r3, -c0.y
                cmp r3.xyz, r5.zxyw, c0.y, r3.zxyw
                mov r3.w, -r3.y
                mov r4.w, -r3.w
                add r4.w, r3.y, r4.w
                cmp r3.y, r4.w, r3.y, r3.w
                log r3.y, r3.y
                mul r3.y, r3.y, c2.z
                exp r3.y, r3.y
                mov r3.w, -r3.z
                mov r4.w, -r3.w
                add r4.w, r3.z, r4.w
                cmp r3.z, r4.w, r3.z, r3.w
                mul r3.w, r3.z, c0.y
                mul r3.z, r3.z, r3.z
                mul r3.z, r3.w, r3.z
                add r1.w, r1.w, c2.w
                add r3.w, r1.w, c0.z
                cmp r1.w, r3.w, r1.w, c0.w
                add r3.w, r1.w, -c0.y
                cmp r1.w, r3.w, c0.y, r1.w
                mul r1.w, r3.z, r1.w
                mov r1.w, -r1.w
                add r1.w, r3.y, r1.w
                mul r2.w, r2.w, r3.x
                add r1.w, r1.w, r2.w
                mul r1.w, r1.w, c1.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mul r1.w, r1.w, c3.x
                mov r2.w, c64.x
                mov r3.y, c64.y
                mov r3.x, r3.x
                mul r3.x, r3.y, r3.x
                add r2.w, r2.w, r3.x
                add r3.x, r2.w, c0.z
                cmp r2.w, r3.x, r2.w, c0.w
                add r3.x, r2.w, -c0.y
                cmp r2.w, r3.x, c0.y, r2.w
                mul r3.x, r2.w, r2.w
                mul r2.w, r2.w, c3.y
                add r2.w, r2.w, c3.z
                mul r2.w, r3.x, r2.w
                mul r2.w, r2.w, c64.z
                add r3.xyz, r1.w, r2.w
                mov r1.w, -r3.z
                add r1.w, r1.w, c0.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp_pp r3.w, r2.w, c0.y, r1.w
                mov_pp r3.xyz, r3
                mov_pp r3, r3
                mul_pp r4.xyz, r4, r3
                mov_pp r5.xyz, -r4
                mov_pp r6.xyz, -r5
                add_pp r6.xyz, r4, r6
                cmp_pp r5.xyz, r6, r4, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, c0.y
                add_pp r3.xyz, r4, r5
                mul_pp r3, r3, c82.x
                mov_pp r1.xyz, r1
                mov_pp r2.xyz, r2
                mov_pp r3, r3
                texld_pp r4, v0, s1
                mov_pp r4.xy, r4.xzzw
                texld r5, v2.zwzw, s2
                add r1.w, r5.x, -c1.y
                mul r2.w, r1.w, c78.w
                add_pp r4.x, r4.x, r2.w
                mul r4.x, r4.x, c71.x
                mov r4.z, -c72.x
                add r4.x, r4.x, r4.z
                add r4.w, r4.x, c0.z
                cmp r4.x, r4.w, r4.x, c0.w
                add r4.w, r4.x, -c0.y
                cmp r4.x, r4.w, c0.y, r4.x
                mov_pp r4.w, -r4.x
                mov_pp r5.x, -r4.w
                add_pp r5.x, r4.x, r5.x
                cmp_pp r4.w, r5.x, r4.x, r4.w
                log r4.w, r4.w
                mul r4.w, r4.w, c78.x
                exp r4.w, r4.w
                mul r4.x, r4.x, c78.y
                add r5.x, r4.x, c0.z
                cmp r4.x, r5.x, r4.x, c0.w
                add r5.x, r4.x, -c0.y
                cmp r4.x, r5.x, c0.y, r4.x
                mul r4.x, r4.w, r4.x
                texld_pp r5, v2, s1
                mov_pp r5.x, r5.x
                mul r2.xy, r2, c78.z
                texld r6, r2, s2
                mul r2.x, r6.x, c78.w
                mul r2.x, r2.x, c3.w
                add_pp r2.x, r5.x, r2.x
                mul r2.x, r2.x, c71.x
                add r2.x, r4.z, r2.x
                mul r2.x, r2.x, c76.x
                add r2.y, r2.x, c0.z
                cmp r2.x, r2.y, r2.x, c0.w
                add r2.y, r2.x, -c0.y
                cmp r2.x, r2.y, c0.y, r2.x
                texld_pp r5, v4, s1
                mov_pp r2.y, r5.y
                mul r2.w, r2.w, c74.y
                add_pp r2.y, r2.y, r2.w
                mul r2.y, r2.y, c74.z
                mov r2.w, -c74.x
                add r2.y, r2.y, r2.w
                add r2.w, r2.y, c0.z
                cmp r2.y, r2.w, r2.y, c0.w
                add r2.w, r2.y, -c0.y
                cmp r2.y, r2.w, c0.y, r2.y
                mul_pp r2.y, r2.z, r2.y
                dp3 r0.x, r0, c65
                mul_pp r0.z, r0.x, r0.x
                mov r2.z, -r4.x
                add r2.z, r2.z, c0.y
                mul r2.w, r2.x, c1.y
                mov r2.w, -r2.w
                add r2.w, r2.z, r2.w
                add r4.z, r2.w, c0.z
                cmp r2.w, r4.z, r2.w, c0.w
                add r4.z, r2.w, -c0.y
                cmp r2.w, r4.z, c0.y, r2.w
                mul r0.z, r0.z, r2.w
                mul r0.z, r0.z, c77.x
                add_pp r0.z, r0.z, c0.y
                mul r0.z, r0.z, c0.y
                mul r1.w, r1.w, c3.w
                add r1.w, r4.y, r1.w
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mov r2.w, -r2.x
                add r2.w, r2.w, c0.y
                mul r2.w, r4.x, r2.w
                mul r2.w, r1.w, r2.w
                add_pp r1.w, r1.w, r2.w
                mul r0.x, r0.x, c1.y
                mul r0.x, r0.x, c1.y
                add r0.x, r0.x, c4.x
                mul_pp r0.x, r1.w, r0.x
                mul r4.yzw, r0.z, c69.xxyz
                mov r5.xyz, -r2.x
                add r4.yzw, r4, r5.xxyz
                mul r5.xyz, r0.x, c70
                add_pp r4.yzw, r4, r5.xxyz
                mov_pp r5.xyz, c75
                mul r0.x, r2.y, r2.z
                mov_pp r2.xyw, -r4.yzzw
                add_pp r2.xyw, r5.xyzz, r2
                mul_pp r2.xyw, r0.x, r2
                add_pp r2.xyw, r4.yzzw, r2
                mul r0.x, r2.z, r0.x
                add_pp r0.x, r4.x, r0.x
                mul_pp r1.xyz, r1, r3.w
                add_pp r4.xyz, r1, c0.z
                cmp_pp r1.xyz, r4, r1, c0.w
                add_pp r4.xyz, r1, -c0.y
                cmp_pp r1.xyz, r4, c0.y, r1
                add_pp r1.xyz, r3, r1
                texld r3, v3.zwzw, s0
                mul_pp r3.xyz, r3, c79.y
                add_pp r1.xyz, r1, r3
                mul r0.y, r0.y, c3.x
                mov r0.z, -c73.x
                add r0.y, r0.y, r0.z
                add r0.z, r0.y, c0.z
                cmp r0.y, r0.z, r0.y, c0.w
                add r0.z, r0.y, -c0.y
                cmp_pp r0.y, r0.z, c0.y, r0.y
                mul_pp r0.x, r0.x, r0.y
                mov_pp r3.xyz, -r1
                add_pp r2.xyz, r2.xyww, r3
                mul_pp r0.xyz, r0.x, r2
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c81.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c83
                cmp_pp r0.xyz, r1, r0, c83
                mov_pp r0.xyz, r0
                mov_pp r0.xyz, r0
                mov r1.xyz, -c83
                add r1.xyz, r0, r1
                cmp r0.xyz, r1, c83, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.w, -r0.w
                add r0.w, r0.w, c67.x
                mul r0.w, r0.w, c67.y
                add r1.x, r0.w, c0.z
                cmp r0.w, r1.x, r0.w, c0.w
                add r1.x, r0.w, -c0.y
                cmp r0.w, r1.x, c0.y, r0.w
                mov r1.xyz, c68
                mov r2.xyz, -r0
                add r1.xyz, r1, r2
                mul r1.xyz, r0.w, r1
                add r0.xyz, r0, r1
                mov r0.xyz, r0
                mov r0.w, c0.y
                mov oC0, r0
            
            // approximately 242 instruction slots used (6 texture, 236 arithmetic)
            };
    }
}

technique drawMiniMe
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
                vs_3_0
                def c0, 2, 0, -1, 1
                dcl_position v0
                dcl_position o0
                dcl_texcoord o1.xy
                mul r0, c0.xxyy, v0.xyxx
                add r0, r0, c0.zzyw
                mov r1.x, v0.x
                mov r1.y, -v0.y
                add r1.y, r1.y, c0.w
                mov o0, r0
                mov o1.x, r1.x
                mov o1.y, r1.y
            
            // approximately 8 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   sampler2D PerlinNoiseSampler;
            //   float3 SkyColor;
            //   float4 StarFieldBrightness;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SkyColor                                    c66      1
            //   AzimuthColor                                c67      1
            //   SunColor                                    c68      1
            //   AzimuthColorEast                            c69      1
            //   AzimuthHeight                               c70      1
            //   CloudColor                                  c71      1
            //   SunsetColor                                 c72      1
            //   CloudThreshold                              c73      1
            //   CloudBias                                   c74      1
            //   CloudFadeOut                                c75      1
            //   TopCloudBiasDetailThresholdHeight           c76      1
            //   TopCloudColor                               c77      1
            //   CloudShadowStrength                         c78      1
            //   CloudInscatteringRange                      c79      1
            //   AzimuthStrength                             c80      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c81      1
            //   StarFieldBrightness                         c82      1
            //   SunSize                                     c83      1
            //   HDRExposure                                 c84      1
            //   HDRSunExposure                              c85      1
            //   HDRExposureClamp                            c86      1
            //   GalaxySampler                               s0       1
            //   PerlinNoiseSampler                          s1       1
            //   HighDetailNoiseSampler                      s2       1
            //
            
                ps_3_0
                def c0, 1, 0, 0.200000003, 0.349999994
                def c1, -0.5, 2, 1, 4000
                def c2, 9.99999975e-006, 12.5799999, -0.0625, 0.5
                def c3, -11.6163721, 0.9375, 0.5, 0
                def c4, 32, 0.600000024, 4, 3
                dcl_texcoord_pp v0.xy
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                add_pp r0.xy, c1.x, v0
                mul r0.xy, r0, c1.y
                mul r6.xy, r0, r0
                add r0.z, r6.x, r6.y
                rsq r0.w, r0.z
                rcp r0.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c1.z
                mul r1.y, r0.w, c1.w
                mov r2.xyz, c65
                mov r3.xyz, c68
                add r0.xy, r0, c2.x
                mul r6.xy, r0, r0
                add r0.w, r6.x, r6.y
                rsq r0.w, r0.w
                mul r0.xy, r0, r0.w
                mul r0.xy, r0.z, r0
                mul r1.xz, r0.xyyw, c1.w
                add r0.xyz, r1, c2.x
                dp3 r0.w, r0, r0
                rsq r0.w, r0.w
                mul r0.xyz, r0, r0.w
                mov r0.w, c65.w
                mov r2.xyz, r2
                mov r0.xyz, r0
                mov r1.x, c83.x
                dp3 r1.y, r0, r2
                mul r1.yzw, r1.y, c2
                add r1.yzw, r1, c3.xxyz
                add r2.xyz, r1.yzww, c3.w
                cmp r1.yzw, r2.xxyz, r1, -c3.w
                add r2.xyz, r1.yzww, -c1.z
                cmp r1.yzw, r2.xyxz, c1.z, r1.xzyw
                log r1.z, r1.z
                mul r1.z, r1.z, c4.x
                exp r1.z, r1.z
                mul r2.x, r1.y, c1.z
                mul r1.y, r1.y, r1.y
                mul r1.y, r2.x, r1.y
                add r0.w, r0.w, c4.y
                add r2.x, r0.w, c3.w
                cmp r0.w, r2.x, r0.w, -c3.w
                add r2.x, r0.w, -c1.z
                cmp r0.w, r2.x, c1.z, r0.w
                mul r0.w, r1.y, r0.w
                mov r0.w, -r0.w
                add r0.w, r1.z, r0.w
                mul r1.x, r1.x, r1.w
                add r0.w, r0.w, r1.x
                mul r0.w, r0.w, -c1.x
                add r1.x, r0.w, c3.w
                cmp r0.w, r1.x, r0.w, -c3.w
                add r1.x, r0.w, -c1.z
                cmp r0.w, r1.x, c1.z, r0.w
                mul r0.w, r0.w, c4.z
                mov r1.x, c64.x
                mov r1.y, c64.y
                mov r1.w, r1.w
                mul r1.y, r1.y, r1.w
                add r1.x, r1.x, r1.y
                add r1.y, r1.x, c3.w
                cmp r1.x, r1.y, r1.x, -c3.w
                add r1.y, r1.x, -c1.z
                cmp r1.x, r1.y, c1.z, r1.x
                mul r1.y, r1.x, r1.x
                mul r1.x, r1.x, -c1.y
                add r1.x, r1.x, c4.w
                mul r1.x, r1.y, r1.x
                mul r1.x, r1.x, c64.z
                add r1.xyz, r0.w, r1.x
                mov r0.w, -r1.z
                add r0.w, r0.w, c1.z
                add r2.x, r0.w, c3.w
                cmp r0.w, r2.x, r0.w, -c3.w
                add r2.x, r0.w, -c1.z
                cmp r1.w, r2.x, c1.z, r0.w
                mov r1.xyz, r1
                mov r1, r1
                mul r2.xyz, r3, r1
                mov r3.xyz, -r2
                mov r4.xyz, -r3
                add r4.xyz, r2, r4
                cmp r3.xyz, r4, r2, r3
                mul r3.xyz, r3, r3
                mul r3.xyz, r3, r3
                mul r3.xyz, r3, c1.z
                add r1.xyz, r2, r3
                mul r1, r1.wxyz, c85.x
                mov r2.xyz, -c86
                add r2.xyz, r1.yzww, r2
                cmp_pp r1.yzw, r2.xxyz, c86.xxyz, r1
                mov_pp r0.w, v0.x
                mov_pp r2.xy, v0
                mul r2.z, r0.y, c70.x
                add r2.w, r2.z, c3.w
                cmp r2.z, r2.w, r2.z, -c3.w
                add r2.w, r2.z, -c1.z
                cmp r2.z, r2.w, c1.z, r2.z
                mov r2.z, -r2.z
                add r2.z, r2.z, c1.z
                mul r2.z, r2.z, c80.x
                mov r3.xy, r0.xzzw
                mul r6.xy, r3, c0
                add r2.w, r6.x, r6.y
                mul r2.w, r2.w, -c1.x
                add r2.w, r2.w, -c1.x
                mov r3.xyz, -c69
                add r3.xyz, r3, c67
                mul r3.xyz, r2.w, r3
                add r3.xyz, r3, c69
                mul r3.xyz, r2.z, r3
                add_pp r3.xyz, r3, c66
                mov_pp r3.xyz, r3
                mov_pp r3.xyz, r3
                mov_pp r2.xy, r2
                mov_pp r0.w, r0.w
                mov_pp r1.yzw, r1
                mov_pp r1.x, r1.x
                texld r4, v0, s1
                mov_pp r2.zw, r4.xyxz
                texld r5, v0, s2
                add r3.w, r5.x, c1.x
                mul r4.x, r3.w, c81.w
                add_pp r4.z, r2.z, r4.x
                mul r4.z, r4.z, c73.x
                mov r4.w, -c74.x
                add r4.z, r4.z, r4.w
                add r5.x, r4.z, c3.w
                cmp r4.z, r5.x, r4.z, -c3.w
                add r5.x, r4.z, -c1.z
                cmp r4.z, r5.x, c1.z, r4.z
                mov_pp r5.x, -r4.z
                mov_pp r5.y, -r5.x
                add_pp r5.y, r4.z, r5.y
                cmp_pp r5.x, r5.y, r4.z, r5.x
                log r5.x, r5.x
                mul r5.x, r5.x, c81.x
                exp r5.x, r5.x
                mul r4.z, r4.z, c81.y
                add r5.y, r4.z, c3.w
                cmp r4.z, r5.y, r4.z, -c3.w
                add r5.y, r4.z, -c1.z
                cmp r4.z, r5.y, c1.z, r4.z
                mul r4.z, r5.x, r4.z
                mov_pp r2.z, r2.z
                mul r2.xy, r2, c81.z
                texld r5, r2, s2
                mul r2.x, r5.x, c81.w
                mul r2.x, r2.x, c0.z
                add_pp r2.x, r2.z, r2.x
                mul r2.x, r2.x, c73.x
                add r2.x, r4.w, r2.x
                mul r2.x, r2.x, c78.x
                add r2.y, r2.x, c3.w
                cmp r2.x, r2.y, r2.x, -c3.w
                add r2.y, r2.x, -c1.z
                cmp r2.x, r2.y, c1.z, r2.x
                mov_pp r2.y, r4.y
                mul r2.z, r4.x, c76.y
                add_pp r2.y, r2.y, r2.z
                mul r2.y, r2.y, c76.z
                mov r2.z, -c76.x
                add r2.y, r2.y, r2.z
                add r2.z, r2.y, c3.w
                cmp r2.y, r2.z, r2.y, -c3.w
                add r2.z, r2.y, -c1.z
                cmp r2.y, r2.z, c1.z, r2.y
                mul_pp r0.w, r0.w, r2.y
                dp3 r0.x, r0, c65
                mul_pp r0.z, r0.x, r0.x
                mov r2.y, -r4.z
                add r2.y, r2.y, c1.z
                mul r2.z, r2.x, -c1.x
                mov r2.z, -r2.z
                add r2.z, r2.y, r2.z
                add r4.x, r2.z, c3.w
                cmp r2.z, r4.x, r2.z, -c3.w
                add r4.x, r2.z, -c1.z
                cmp r2.z, r4.x, c1.z, r2.z
                mul r0.z, r0.z, r2.z
                mul r0.z, r0.z, c79.x
                add_pp r0.z, r0.z, c1.z
                mul r0.z, r0.z, c1.z
                mul r2.z, r3.w, c0.z
                add r2.z, r2.w, r2.z
                add r2.w, r2.z, c3.w
                cmp r2.z, r2.w, r2.z, -c3.w
                add r2.w, r2.z, -c1.z
                cmp r2.z, r2.w, c1.z, r2.z
                mov r2.w, -r2.x
                add r2.w, r2.w, c1.z
                mul r2.w, r4.z, r2.w
                mul r2.w, r2.z, r2.w
                add_pp r2.z, r2.z, r2.w
                mul r0.x, r0.x, -c1.x
                mul r0.x, r0.x, -c1.x
                add r0.x, r0.x, c0.w
                mul_pp r0.x, r2.z, r0.x
                mul r4.xyw, r0.z, c71.xyzz
                mov r2.xzw, -r2.x
                add r2.xzw, r4.xyyw, r2
                mul r4.xyw, r0.x, c72.xyzz
                add_pp r2.xzw, r2, r4.xyyw
                mov_pp r4.xyw, c77.xyzz
                mul r0.x, r0.w, r2.y
                mov_pp r5.xyz, -r2.xzww
                add_pp r4.xyw, r4, r5.xyzz
                mul_pp r4.xyw, r0.x, r4
                add_pp r2.xzw, r2, r4.xyyw
                mul r0.x, r2.y, r0.x
                add_pp r0.x, r4.z, r0.x
                mul_pp r3.xyz, r3, r1.x
                add_pp r4.xyz, r3, c3.w
                cmp_pp r3.xyz, r4, r3, -c3.w
                add_pp r4.xyz, r3, -c1.z
                cmp_pp r3.xyz, r4, c1.z, r3
                add_pp r1.xyz, r1.yzww, r3
                texld r3, v0, s0
                mul_pp r3.xyz, r3, c82.y
                add_pp r1.xyz, r1, r3
                mul r0.y, r0.y, c4.z
                mov r0.z, -c75.x
                add r0.y, r0.y, r0.z
                add r0.z, r0.y, c3.w
                cmp r0.y, r0.z, r0.y, -c3.w
                add r0.z, r0.y, -c1.z
                cmp_pp r0.y, r0.z, c1.z, r0.y
                mul_pp r0.x, r0.x, r0.y
                mov_pp r0.yzw, -r1.xxyz
                add_pp r0.yzw, r2.xxzw, r0
                mul_pp r0.xyz, r0.x, r0.yzww
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c84.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c86
                cmp_pp r0.xyz, r1, r0, c86
                mov_pp r0.xyz, r0
                mov_pp r0.w, c1.z
                mov oC0, r0
            
            // approximately 239 instruction slots used (4 texture, 235 arithmetic)
            };
    }
}

technique FastblurMiniMe
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
                vs_3_0
                def c0, 2, 0, -1, 1
                dcl_position v0
                dcl_position o0
                dcl_texcoord o1.xy
                mul r0, c0.xxyy, v0.xyxx
                add r0, r0, c0.zzyw
                mov r1.x, v0.x
                mov r1.y, -v0.y
                add r1.y, r1.y, c0.w
                mov o0, r0
                mov o1.x, r1.x
                mov o1.y, r1.y
            
            // approximately 8 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   sampler2D SkyMapSampler;
            //   float4 TexelSize;
            //
            //
            // Registers:
            //
            //   Name          Reg   Size
            //   ------------- ----- ----
            //   TexelSize     c64      1
            //   SkyMapSampler s0       1
            //
            
                ps_3_0
                def c0, -0.5, 0.5, 0.25, 0
                dcl_texcoord v0.xy
                dcl_2d s0
                mov r0.xy, c0
                mul r0.xy, r0, c64.x
                add r0.zw, r0.x, v0.xyxy
                texld r1, r0.zwzw, s0
                add r0.zw, r0.xyyx, v0.xyxy
                texld r2, r0.zwzw, s0
                add r0.xz, r0.xyyw, v0.xyyw
                texld r3, r0.xzzw, s0
                add r0.xy, r0.y, v0
                texld r0, r0, s0
                add r1, r1, r2
                add r1, r3, r1
                add r0, r0, r1
                mul oC0, r0, c0.z
            
            // approximately 14 instruction slots used (4 texture, 10 arithmetic)
            };
    }
}

technique blurMiniMe
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
                vs_3_0
                def c0, 2, 0, -1, 1
                dcl_position v0
                dcl_position o0
                dcl_texcoord o1.xy
                mul r0, c0.xxyy, v0.xyxx
                add r0, r0, c0.zzyw
                mov r1.x, v0.x
                mov r1.y, -v0.y
                add r1.y, r1.y, c0.w
                mov o0, r0
                mov o1.x, r1.x
                mov o1.y, r1.y
            
            // approximately 8 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   sampler2D SkyMapSampler;
            //   float4 TexelSize;
            //
            //
            // Registers:
            //
            //   Name          Reg   Size
            //   ------------- ----- ----
            //   TexelSize     c64      1
            //   SkyMapSampler s0       1
            //
            
                ps_3_0
                def c0, -1.5, 0.25, 0, -0.5
                def c1, 0.5, -1.5, 1.5, -0.5
                def c2, 1, 0.111111112, 0, 0
                dcl_texcoord v0.xy
                dcl_2d s0
                mov r0.xy, v0
                mov r1.xw, c0
                mul r0.zw, r1.x, c64.xyxy
                add r0.zw, r0.xyxy, r0
                texld r2, r0.zwzw, s0
                mov r2, r2
                mul r2, r2, c0.y
                add r2, r2, c0.z
                mul r0.zw, r1.xywx, c64.xyxy
                add r0.zw, r0.xyxy, r0
                texld r3, r0.zwzw, s0
                mov r3, r3
                mul r3, r3, -c0.w
                add r2, r2, r3
                mov r3.xy, c64
                mul r0.zw, r3.xyxy, c1.xyxy
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                mul r4, r4, -c0.w
                add r2, r2, r4
                mul r0.zw, r3.xyxy, c1.xyzy
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                mul r4, r4, c0.y
                add r2, r2, r4
                mul r0.zw, r1.xyxw, c64.xyxy
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                mul r4, r4, -c0.w
                add r2, r2, r4
                mul r0.zw, r1.w, c64.xyxy
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                add r2, r2, r4
                mul r0.zw, r3.xyxy, c1.xyxw
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                add r2, r2, r4
                mul r0.zw, r3.xyxy, c1
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                mul r4, r4, -c0.w
                add r2, r2, r4
                mul r0.zw, r3.xyxy, c1.xyyx
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                mul r4, r4, -c0.w
                add r2, r2, r4
                mul r0.zw, r3.xyxy, c1.xywx
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                add r2, r2, r4
                mul r0.zw, -r1.w, c64.xyxy
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                add r2, r2, r4
                mul r0.zw, -r1.xyxw, c64.xyxy
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                mul r4, r4, -c0.w
                add r2, r2, r4
                mul r0.zw, r3.xyxy, c1.xyyz
                add r0.zw, r0.xyxy, r0
                texld r4, r0.zwzw, s0
                mov r4, r4
                mul r4, r4, c0.y
                add r2, r2, r4
                mul r0.zw, r3.xyxy, c1.xywz
                add r0.zw, r0.xyxy, r0
                texld r3, r0.zwzw, s0
                mov r3, r3
                mul r3, r3, -c0.w
                add r2, r2, r3
                mul r0.zw, -r1.xywx, c64.xyxy
                add r0.zw, r0.xyxy, r0
                texld r3, r0.zwzw, s0
                mov r3, r3
                mul r3, r3, -c0.w
                add r2, r2, r3
                mul r0.zw, -r1.x, c64.xyxy
                add r0.xy, r0, r0.zwzw
                texld r0, r0, s0
                mov r0, r0
                mul r0, r0, c0.y
                add r0, r2, r0
                mul r0, r0, c2.x
                mul oC0, r0, c2.y
            
            // approximately 97 instruction slots used (16 texture, 81 arithmetic)
            };
    }
}

technique paraboloid_draw
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudShadowOffset;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float2 DetailOffset;
            //   float2 GalaxyOffset;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 SunDirection;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldView;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   gWorld                                      c0       4
            //   gWorldView                                  c4       4
            //   SunDirection                                c64      1
            //   SkyColor                                    c65      1
            //   AzimuthColor                                c66      1
            //   AzimuthColorEast                            c67      1
            //   AzimuthHeight                               c68      1
            //   TopCloudBiasDetailThresholdHeight           c69      1
            //   CloudShadowOffset                           c70      1
            //   AzimuthStrength                             c71      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c72      1
            //   StarFieldUVRepeat                           c73      1
            //   GalaxyOffset                                c74      1
            //   DetailOffset                                c75      1
            //
            
                vs_3_0
                def c8, 1, 512, -0.00039999999, -1
                def c9, 0.200000003, 0, 9.99999975e-006, 1.5
                def c10, 0.5, -0.0187292993, 0.0742610022, -0.212114394
                def c11, 1.57072878, -2, 3.14159274, 1.57079637
                def c12, 0.317732662, 0.100000001, 0, 0
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1.xyz
                dcl_texcoord1 o2.xyz
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                dcl_texcoord5 o6.xyz
                mul r0.xyz, c4, v0.x
                mul r1.xyz, c5, v0.y
                add r0.xyz, r0, r1
                mul r1.xyz, c6, v0.z
                add r0.xyz, r0, r1
                mov r1.x, c8.x
                mul r1.xyz, r1.x, c7
                add r0.xyz, r0, r1
                add r0.w, r0.z, c8.y
                mul r0.z, r0.w, c8.z
                max r0.z, r0.z, c8.w
                min r0.z, r0.z, c8.x
                mul r0.z, r0.z, c9.x
                mov r0.z, -r0.z
                add r1.x, r0.z, c8.x
                mul r0.z, r0.w, -c8.z
                max r0.z, r0.z, c9.y
                min r0.z, r0.z, c8.x
                mul r0.z, r0.z, c9.x
                add r1.y, r0.z, c8.x
                mov r1.zw, c8.x
                dp3 r0.z, r0.xyww, r0.xyww
                rsq r0.z, r0.z
                rcp r0.z, r0.z
                rcp r2.x, r0.z
                mul r0.w, r0.w, r2.x
                mov r0.w, -r0.w
                add r0.w, r0.w, c8.x
                mul r0.w, r0.z, r0.w
                rcp r0.w, r0.w
                mul r0.w, r0.w, c8.x
                mul r2.xy, r0, r0.w
                add r0.x, r0.z, c8.x
                rcp r0.x, r0.x
                mul r0.x, r0.x, c8.x
                mov r0.x, -r0.x
                add r2.z, r0.x, c8.x
                mov r2.w, c8.x
                mul r0, r1, r2
                mov r0, r0
                mov r0, r0
                mov r1.xy, v1
                mov r0, r0
                mul r2.xyz, c0, v0.x
                mul r3.xyz, c1, v0.y
                add r2.xyz, r2, r3
                mul r3.xyz, c2, v0.z
                add r2.xyz, r2, r3
                mul r3.xyz, c3, v0.w
                add r2.xyz, r2, r3
                mov r3.xyz, -c3
                add r2.xyz, r2, r3
                mov r1.xy, r1
                add r3.xyz, r2, c9.z
                dp3 r1.w, r3, r3
                rsq r1.w, r1.w
                mul r3.xyz, r3, r1.w
                mov r3.xyz, r3
                mul r1.w, r3.y, c9.w
                add r3.w, r1.w, c10.x
                add r4.xyz, r3.xwzw, c9.z
                dp3 r1.w, r4, r4
                rsq r1.w, r1.w
                mul r4.xy, r4.xzzw, r1.w
                mov r1.w, -r4.x
                max r2.w, r4.x, r1.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c8.x
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.z, r2.w, c10.y
                add r4.z, r4.z, c10.z
                mul r4.z, r2.w, r4.z
                add r4.z, r4.z, c10.w
                mul r2.w, r2.w, r4.z
                add r2.w, r2.w, c11.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c11.y
                add r3.w, r3.w, c11.z
                slt r1.w, r4.x, r1.w
                mul r1.w, r3.w, r1.w
                add r1.w, r2.w, r1.w
                mov r1.w, -r1.w
                add r1.w, r1.w, c11.w
                mul r1.w, r1.w, c12.x
                add r4.z, r1.w, c10.x
                mov r1.w, -r4.y
                max r2.w, r4.y, r1.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c8.x
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.x, r2.w, c10.y
                add r4.x, r4.x, c10.z
                mul r4.x, r2.w, r4.x
                add r4.x, r4.x, c10.w
                mul r2.w, r2.w, r4.x
                add r2.w, r2.w, c11.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c11.y
                add r3.w, r3.w, c11.z
                slt r1.w, r4.y, r1.w
                mul r1.w, r3.w, r1.w
                add r1.w, r2.w, r1.w
                mov r1.w, -r1.w
                add r1.w, r1.w, c11.w
                mul r1.w, r1.w, c12.x
                add r4.w, r1.w, c10.x
                add r4.zw, r4, c74.xyxy
                mul r4.xy, r4.zwzw, c73.x
                mov r3.zw, -r3.xyxz
                add r3.zw, r3, c64.xyxz
                mov r5.y, c12.y
                mul r5.xy, r5.y, c70.x
                mul r3.zw, r3, r5.xyxy
                mov r5.xy, r1
                mov r3.zw, r3
                mul r5.zw, r5.xyxy, -c11.y
                add r5.zw, r5, c8.w
                mul r1.w, r5.z, r5.z
                mul r2.w, r5.w, r5.w
                add r1.w, r1.w, r2.w
                mov r1.w, -r1.w
                add r1.w, r1.w, c8.x
                mul r3.zw, r3, r1.w
                add r6.xy, r1, r3.zwzw
                add r3.zw, r5.xyxy, -c10.x
                mul r1.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r1.w, r1.w, r2.w
                add r3.zw, r3, c9.z
                mul r2.w, r3.z, r3.z
                mul r5.x, r3.w, r3.w
                add r2.w, r2.w, r5.x
                rsq r2.w, r2.w
                mul r3.zw, r3, r2.w
                mul r3.zw, r1.w, r3
                mul r3.zw, r3, c8.x
                mov r3.zw, r3
                mul r3.zw, r3, c72.z
                add r6.zw, r3, c75.xyxy
                add r3.zw, r1.xyxy, -c10.x
                mul r3.zw, r3, c69.w
                mul r1.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r1.w, r1.w, r2.w
                rsq r1.w, r1.w
                rcp r1.w, r1.w
                mov r1.w, -r1.w
                add r5.z, r1.w, c8.x
                add r5.xy, r3.zwzw, c10.x
                mov r5.xy, r5
                mov r5.z, r5.z
                mul r1.w, r0.z, c8.x
                mov r1.w, -r1.w
                add r1.z, r1.w, c8.x
                mov r3.xy, r3
                mul r1.w, r3.y, c68.x
                max r1.w, r1.w, c9.y
                min r1.w, r1.w, c8.x
                mov r1.w, -r1.w
                add r1.w, r1.w, c8.x
                mul r1.w, r1.w, c71.x
                mov r3.x, r3.x
                mul r2.w, r3.x, c8.x
                add r2.w, r2.w, c9.y
                mul r2.w, r2.w, c10.x
                add r2.w, r2.w, c10.x
                mov r3.xyz, -c67
                add r3.xyz, r3, c66
                mul r3.xyz, r2.w, r3
                add r3.xyz, r3, c67
                mul r3.xyz, r1.w, r3
                add r3.xyz, r3, c65
                mov r3.xyz, r3
                mov r0, r0
                mov r6.xy, r6
                mov r6.zw, r6
                mov r4.xy, r4
                mov r4.zw, r4
                mov r1.xy, r1
                mov r1.z, r1.z
                mov r2.xyz, r2
                mov r5.xy, r5
                mov r5.z, r5.z
                mov r3.xyz, r3
                mov o0, r0
                mov o3, r6
                mov o4, r4
                mov o1.xyz, r1
                mov o2.xyz, r2
                mov o5.xyz, r5
                mov o6.xyz, r3
            
            // approximately 193 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   sampler2D PerlinNoiseSampler;
            //   float4 StarFieldBrightness;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //   float3 gtaSkyDomeFade;
            //   float3 gtaWaterColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SunColor                                    c66      1
            //   gtaSkyDomeFade                              c67      1
            //   gtaWaterColor                               c68      1
            //   CloudColor                                  c69      1
            //   SunsetColor                                 c70      1
            //   CloudThreshold                              c71      1
            //   CloudBias                                   c72      1
            //   CloudFadeOut                                c73      1
            //   TopCloudBiasDetailThresholdHeight           c74      1
            //   TopCloudColor                               c75      1
            //   CloudShadowStrength                         c76      1
            //   CloudInscatteringRange                      c77      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c78      1
            //   StarFieldBrightness                         c79      1
            //   SunSize                                     c80      1
            //   HDRExposure                                 c81      1
            //   HDRSunExposure                              c82      1
            //   HDRExposureClamp                            c83      1
            //   GalaxySampler                               s0       1
            //   PerlinNoiseSampler                          s1       1
            //   HighDetailNoiseSampler                      s2       1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0, 0
                def c1, 25.1599998, 0.5, -0.0625, -0.461699992
                def c2, 0.9375, 0.5, 32, 0.600000024
                def c3, 4, -2, 3, 0.200000003
                def c4, 0.349999994, 0, 0, 0
                dcl_texcoord_pp v0.xy
                dcl_texcoord1_pp v1.xyz
                dcl_texcoord2_pp v2
                dcl_texcoord3_pp v3.zw
                dcl_texcoord4_pp v4.xyz
                dcl_texcoord5_pp v5.xyz
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                mov r0.xyz, v1
                mov_pp r1.xyz, v5
                mov_pp r2.xy, v2
                mov_pp r2.z, v4.z
                mov_pp r0.w, r0.y
                mov_pp r3.xyz, c65
                add r0.xyz, r0, c0.x
                dp3 r1.w, r0, r0
                rsq r1.w, r1.w
                mul_pp r0.xyz, r0, r1.w
                mov_pp r4.xyz, c66
                mov r1.w, c65.w
                mov r3.xyz, r3
                mov r0.xyz, r0
                mov r2.w, c80.x
                mov r3.w, -c82.y
                add r3.w, r3.w, c0.y
                add r4.w, r3.w, c0.z
                cmp r3.w, r4.w, r3.w, c0.w
                add r4.w, r3.w, -c0.y
                cmp r3.w, r4.w, c0.y, r3.w
                mul r3.w, r3.w, c1.x
                dp3 r3.x, r0, r3
                mul r5.x, r3.w, c1.y
                mov r5.yz, c1.xzyw
                mul r3.xyz, r3.x, r5
                mul r5.x, r3.w, c1.w
                mov r5.yz, c2.xxyw
                add r3.xyz, r3, r5
                add r5.xyz, r3, c0.z
                cmp r3.xyz, r5, r3, c0.w
                add r5.xyz, r3, -c0.y
                cmp r3.xyz, r5.zxyw, c0.y, r3.zxyw
                mov r3.w, -r3.y
                mov r4.w, -r3.w
                add r4.w, r3.y, r4.w
                cmp r3.y, r4.w, r3.y, r3.w
                log r3.y, r3.y
                mul r3.y, r3.y, c2.z
                exp r3.y, r3.y
                mov r3.w, -r3.z
                mov r4.w, -r3.w
                add r4.w, r3.z, r4.w
                cmp r3.z, r4.w, r3.z, r3.w
                mul r3.w, r3.z, c0.y
                mul r3.z, r3.z, r3.z
                mul r3.z, r3.w, r3.z
                add r1.w, r1.w, c2.w
                add r3.w, r1.w, c0.z
                cmp r1.w, r3.w, r1.w, c0.w
                add r3.w, r1.w, -c0.y
                cmp r1.w, r3.w, c0.y, r1.w
                mul r1.w, r3.z, r1.w
                mov r1.w, -r1.w
                add r1.w, r3.y, r1.w
                mul r2.w, r2.w, r3.x
                add r1.w, r1.w, r2.w
                mul r1.w, r1.w, c1.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mul r1.w, r1.w, c3.x
                mov r2.w, c64.x
                mov r3.y, c64.y
                mov r3.x, r3.x
                mul r3.x, r3.y, r3.x
                add r2.w, r2.w, r3.x
                add r3.x, r2.w, c0.z
                cmp r2.w, r3.x, r2.w, c0.w
                add r3.x, r2.w, -c0.y
                cmp r2.w, r3.x, c0.y, r2.w
                mul r3.x, r2.w, r2.w
                mul r2.w, r2.w, c3.y
                add r2.w, r2.w, c3.z
                mul r2.w, r3.x, r2.w
                mul r2.w, r2.w, c64.z
                add r3.xyz, r1.w, r2.w
                mov r1.w, -r3.z
                add r1.w, r1.w, c0.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp_pp r3.w, r2.w, c0.y, r1.w
                mov_pp r3.xyz, r3
                mov_pp r3, r3
                mul_pp r4.xyz, r4, r3
                mov_pp r5.xyz, -r4
                mov_pp r6.xyz, -r5
                add_pp r6.xyz, r4, r6
                cmp_pp r5.xyz, r6, r4, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, c0.y
                add_pp r3.xyz, r4, r5
                mul_pp r3, r3, c82.x
                mov_pp r1.xyz, r1
                mov_pp r2.xyz, r2
                mov_pp r3, r3
                texld_pp r4, v0, s1
                mov_pp r4.xy, r4.xzzw
                texld r5, v2.zwzw, s2
                add r1.w, r5.x, -c1.y
                mul r2.w, r1.w, c78.w
                add_pp r4.x, r4.x, r2.w
                mul r4.x, r4.x, c71.x
                mov r4.z, -c72.x
                add r4.x, r4.x, r4.z
                add r4.w, r4.x, c0.z
                cmp r4.x, r4.w, r4.x, c0.w
                add r4.w, r4.x, -c0.y
                cmp r4.x, r4.w, c0.y, r4.x
                mov_pp r4.w, -r4.x
                mov_pp r5.x, -r4.w
                add_pp r5.x, r4.x, r5.x
                cmp_pp r4.w, r5.x, r4.x, r4.w
                log r4.w, r4.w
                mul r4.w, r4.w, c78.x
                exp r4.w, r4.w
                mul r4.x, r4.x, c78.y
                add r5.x, r4.x, c0.z
                cmp r4.x, r5.x, r4.x, c0.w
                add r5.x, r4.x, -c0.y
                cmp r4.x, r5.x, c0.y, r4.x
                mul r4.x, r4.w, r4.x
                texld_pp r5, v2, s1
                mov_pp r5.x, r5.x
                mul r2.xy, r2, c78.z
                texld r6, r2, s2
                mul r2.x, r6.x, c78.w
                mul r2.x, r2.x, c3.w
                add_pp r2.x, r5.x, r2.x
                mul r2.x, r2.x, c71.x
                add r2.x, r4.z, r2.x
                mul r2.x, r2.x, c76.x
                add r2.y, r2.x, c0.z
                cmp r2.x, r2.y, r2.x, c0.w
                add r2.y, r2.x, -c0.y
                cmp r2.x, r2.y, c0.y, r2.x
                texld_pp r5, v4, s1
                mov_pp r2.y, r5.y
                mul r2.w, r2.w, c74.y
                add_pp r2.y, r2.y, r2.w
                mul r2.y, r2.y, c74.z
                mov r2.w, -c74.x
                add r2.y, r2.y, r2.w
                add r2.w, r2.y, c0.z
                cmp r2.y, r2.w, r2.y, c0.w
                add r2.w, r2.y, -c0.y
                cmp r2.y, r2.w, c0.y, r2.y
                mul_pp r2.y, r2.z, r2.y
                dp3 r0.x, r0, c65
                mul_pp r0.z, r0.x, r0.x
                mov r2.z, -r4.x
                add r2.z, r2.z, c0.y
                mul r2.w, r2.x, c1.y
                mov r2.w, -r2.w
                add r2.w, r2.z, r2.w
                add r4.z, r2.w, c0.z
                cmp r2.w, r4.z, r2.w, c0.w
                add r4.z, r2.w, -c0.y
                cmp r2.w, r4.z, c0.y, r2.w
                mul r0.z, r0.z, r2.w
                mul r0.z, r0.z, c77.x
                add_pp r0.z, r0.z, c0.y
                mul r0.z, r0.z, c0.y
                mul r1.w, r1.w, c3.w
                add r1.w, r4.y, r1.w
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mov r2.w, -r2.x
                add r2.w, r2.w, c0.y
                mul r2.w, r4.x, r2.w
                mul r2.w, r1.w, r2.w
                add_pp r1.w, r1.w, r2.w
                mul r0.x, r0.x, c1.y
                mul r0.x, r0.x, c1.y
                add r0.x, r0.x, c4.x
                mul_pp r0.x, r1.w, r0.x
                mul r4.yzw, r0.z, c69.xxyz
                mov r5.xyz, -r2.x
                add r4.yzw, r4, r5.xxyz
                mul r5.xyz, r0.x, c70
                add_pp r4.yzw, r4, r5.xxyz
                mov_pp r5.xyz, c75
                mul r0.x, r2.y, r2.z
                mov_pp r2.xyw, -r4.yzzw
                add_pp r2.xyw, r5.xyzz, r2
                mul_pp r2.xyw, r0.x, r2
                add_pp r2.xyw, r4.yzzw, r2
                mul r0.x, r2.z, r0.x
                add_pp r0.x, r4.x, r0.x
                mul_pp r1.xyz, r1, r3.w
                add_pp r4.xyz, r1, c0.z
                cmp_pp r1.xyz, r4, r1, c0.w
                add_pp r4.xyz, r1, -c0.y
                cmp_pp r1.xyz, r4, c0.y, r1
                add_pp r1.xyz, r3, r1
                texld r3, v3.zwzw, s0
                mul_pp r3.xyz, r3, c79.y
                add_pp r1.xyz, r1, r3
                mul r0.y, r0.y, c3.x
                mov r0.z, -c73.x
                add r0.y, r0.y, r0.z
                add r0.z, r0.y, c0.z
                cmp r0.y, r0.z, r0.y, c0.w
                add r0.z, r0.y, -c0.y
                cmp_pp r0.y, r0.z, c0.y, r0.y
                mul_pp r0.x, r0.x, r0.y
                mov_pp r3.xyz, -r1
                add_pp r2.xyz, r2.xyww, r3
                mul_pp r0.xyz, r0.x, r2
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c81.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c83
                cmp_pp r0.xyz, r1, r0, c83
                mov_pp r0.xyz, r0
                mov_pp r0.xyz, r0
                mov r1.xyz, -c83
                add r1.xyz, r0, r1
                cmp r0.xyz, r1, c83, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.w, -r0.w
                add r0.w, r0.w, c67.x
                mul r0.w, r0.w, c67.y
                add r1.x, r0.w, c0.z
                cmp r0.w, r1.x, r0.w, c0.w
                add r1.x, r0.w, -c0.y
                cmp r0.w, r1.x, c0.y, r0.w
                mov r1.xyz, c68
                mov r2.xyz, -r0
                add r1.xyz, r1, r2
                mul r1.xyz, r0.w, r1
                add r0.xyz, r0, r1
                mov r0.xyz, r0
                mov r0.w, c0.y
                mov r0, r0
                mov oC0, r0
            
            // approximately 243 instruction slots used (6 texture, 237 arithmetic)
            };
    }
}

technique draw_sunonly
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudFadeOut;
            //   float2 GalaxyOffset;
            //   float4 MoonTexPosition;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name                              Reg   Size
            //   --------------------------------- ----- ----
            //   gWorld                            c0       4
            //   gWorldViewProj                    c8       4
            //   SkyColor                          c64      1
            //   AzimuthColor                      c65      1
            //   AzimuthColorEast                  c66      1
            //   AzimuthHeight                     c67      1
            //   CloudFadeOut                      c68      1
            //   TopCloudBiasDetailThresholdHeight c69      1
            //   AzimuthStrength                   c70      1
            //   StarFieldUVRepeat                 c71      1
            //   GalaxyOffset                      c72      1
            //   MoonTexPosition                   c73      1
            //
            
                vs_3_0
                def c4, 9.99999975e-006, 4, 0, 1
                def c5, 1.5, 0.5, -0.0187292993, 0.0742610022
                def c6, -0.212114394, 1.57072878, -2, 3.14159274
                def c7, 1.57079637, 0.317732662, 0, 0
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1
                dcl_texcoord1 o2
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                mul r0, c8, v0.x
                mul r1, c9, v0.y
                add r0, r0, r1
                mul r1, c10, v0.z
                add r0, r0, r1
                mul r1, c11, v0.w
                add r0, r0, r1
                mov r0, r0
                mov r1.xy, v1
                mov r0, r0
                mul r2.xyz, c0, v0.x
                mul r3.xyz, c1, v0.y
                add r2.xyz, r2, r3
                mul r3.xyz, c2, v0.z
                add r2.xyz, r2, r3
                mul r3.xyz, c3, v0.w
                add r2.xyz, r2, r3
                mov r3.xyz, -c3
                add r2.xyz, r2, r3
                mov r1.w, r2.z
                mov r3.zw, r2.xyxy
                mov r2.xyz, r2
                add r4.xyz, r2, c4.x
                dp3 r2.w, r4, r4
                rsq r2.w, r2.w
                mul r2.w, r4.y, r2.w
                mul r2.w, r2.w, c4.y
                mov r4.x, -c68.x
                add r2.w, r2.w, r4.x
                max r2.w, r2.w, c4.z
                min r4.w, r2.w, c4.w
                mov r4.w, r4.w
                mov r1.xy, r1
                add r2.xyz, r2, c4.x
                dp3 r2.w, r2, r2
                rsq r2.w, r2.w
                mul r2.xyz, r2, r2.w
                mov r2.xyz, r2
                mul r5.x, r2.y, c5.x
                add r2.w, r5.x, c5.y
                add r5.xyz, r2.xwzw, c4.x
                dp3 r2.z, r5, r5
                rsq r2.z, r2.z
                mul r2.zw, r5.xyxz, r2.z
                mov r5.x, -r2.z
                max r5.y, r2.z, r5.x
                mov r5.z, -r5.y
                add r5.z, r5.z, c4.w
                rsq r5.z, r5.z
                rcp r5.z, r5.z
                mul r5.w, r5.y, c5.z
                add r5.w, r5.w, c5.w
                mul r5.w, r5.y, r5.w
                add r5.w, r5.w, c6.x
                mul r5.y, r5.y, r5.w
                add r5.y, r5.y, c6.y
                mul r5.y, r5.z, r5.y
                mul r5.z, r5.y, c6.z
                add r5.z, r5.z, c6.w
                slt r2.z, r2.z, r5.x
                mul r2.z, r5.z, r2.z
                add r2.z, r5.y, r2.z
                mov r2.z, -r2.z
                add r2.z, r2.z, c7.x
                mul r2.z, r2.z, c7.y
                add r5.x, r2.z, c5.y
                mov r2.z, -r2.w
                max r5.z, r2.w, r2.z
                mov r5.w, -r5.z
                add r5.w, r5.w, c4.w
                rsq r5.w, r5.w
                rcp r5.w, r5.w
                mul r6.x, r5.z, c5.z
                add r6.x, r6.x, c5.w
                mul r6.x, r5.z, r6.x
                add r6.x, r6.x, c6.x
                mul r5.z, r5.z, r6.x
                add r5.z, r5.z, c6.y
                mul r5.z, r5.w, r5.z
                mul r5.w, r5.z, c6.z
                add r5.w, r5.w, c6.w
                slt r2.z, r2.w, r2.z
                mul r2.z, r5.w, r2.z
                add r2.z, r5.z, r2.z
                mov r2.z, -r2.z
                add r2.z, r2.z, c7.x
                mul r2.z, r2.z, c7.y
                add r5.y, r2.z, c5.y
                add r6.zw, r5.xyxy, c72.xyxy
                mul r6.xy, r6.zwzw, c71.x
                mov r2.zw, -c73
                add r2.zw, r5.xyxy, r2
                mul r3.xy, r2.zwzw, c73.x
                add r2.zw, r1.xyxy, -c5.y
                mul r2.zw, r2, c69.w
                mul r5.x, r2.z, r2.z
                mul r5.y, r2.w, r2.w
                add r5.x, r5.x, r5.y
                rsq r5.x, r5.x
                rcp r5.x, r5.x
                mov r5.x, -r5.x
                add r4.z, r5.x, c4.w
                add r4.xy, r2.zwzw, c5.y
                mov r4.xy, r4
                mov r4.z, r4.z
                rcp r2.z, r0.w
                mul r2.z, r0.z, r2.z
                mov r2.z, -r2.z
                add r1.z, r2.z, c4.w
                mov r2.xy, r2
                mul r2.y, r2.y, c67.x
                max r2.y, r2.y, c4.z
                min r2.y, r2.y, c4.w
                mov r2.y, -r2.y
                add r2.y, r2.y, c4.w
                mul r2.y, r2.y, c70.x
                mov r2.x, r2.x
                mul r2.x, r2.x, c4.w
                add r2.x, r2.x, c4.z
                mul r2.x, r2.x, c5.y
                add r2.x, r2.x, c5.y
                mov r5.xyz, -c66
                add r5.xyz, r5, c65
                mul r2.xzw, r2.x, r5.xyyz
                add r2.xzw, r2, c66.xyyz
                mul r2.xyz, r2.y, r2.xzww
                add r2.xyz, r2, c64
                mov r2.xyz, r2
                mov r0, r0
                mov r1.xy, r1
                mov r1.z, r1.z
                mov r1.w, r1.w
                mov r3.xy, r3
                mov r3.zw, r3
                mov r4.xy, r4
                mov r4.z, r4.z
                mov r4.w, r4.w
                mov r6.xy, r6
                mov r6.zw, r6
                mov r2.xyz, r2
                mov o0, r0
                mov o1, r1
                mov o2, r3
                mov o3, r4
                mov o4, r6
                mov o5.xyz, r2
            
            // approximately 146 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //
            //
            // Registers:
            //
            //   Name             Reg   Size
            //   ---------------- ----- ----
            //   SunCentre        c64      1
            //   SunDirection     c65      1
            //   SunColor         c66      1
            //   HDRSunExposure   c67      1
            //   HDRExposureClamp c68      1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0.5, 0
                def c1, -2, 3, 4, 0
                dcl_texcoord_pp v0.w
                dcl_texcoord1_pp v1.zw
                mov_pp r0.xy, v1.zwzw
                mov_pp r0.z, v0.w
                add r0.xyz, r0, c0.x
                dp3 r0.w, r0, r0
                rsq r0.w, r0.w
                mul_pp r0.xyz, r0, r0.w
                mov r1.x, c0.x
                add r1.xyz, r1.x, c65
                dp3 r0.w, r1, r1
                rsq r0.w, r0.w
                mul_pp r1.xyz, r1, r0.w
                mov_pp r2.xyz, c66
                dp3_pp r0.x, r0, r1
                add_pp r0.x, r0.x, c0.y
                mul_pp r0.x, r0.x, c0.z
                mov r0.y, -c64.x
                add r0.z, r0.y, c64.y
                add r0.x, r0.x, r0.y
                rcp r0.y, r0.z
                mul r0.x, r0.x, r0.y
                add r0.y, r0.x, c0.w
                cmp r0.x, r0.y, r0.x, -c0.w
                add r0.y, r0.x, -c0.y
                cmp r0.x, r0.y, c0.y, r0.x
                mul r0.y, r0.x, c1.x
                add r0.y, r0.y, c1.y
                mul r0.x, r0.x, r0.x
                mul r0.x, r0.y, r0.x
                mul_pp r0.x, r0.x, c64.z
                mul_pp r0.xyz, r0.x, c1.z
                mul_pp r0.xyz, r2, r0
                mov_pp r1.xyz, -r0
                mov_pp r2.xyz, -r1
                add_pp r2.xyz, r0, r2
                cmp_pp r1.xyz, r2, r0, r1
                mul_pp r1.xyz, r1, r1
                mul_pp r1.xyz, r1, r1
                mul_pp r1.xyz, r1, c0.y
                add_pp r0.xyz, r0, r1
                mul_pp r0.xyz, r0, c67.x
                mov r1.xyz, -c68
                add r1.xyz, r0, r1
                cmp_pp oC0.xyz, r1, c68, r0
                mov_pp oC0.w, c0.y
            
            // approximately 44 instruction slots used
            };
    }
}

technique draw_withmoon
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudShadowOffset;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float2 DetailOffset;
            //   float2 GalaxyOffset;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 SunDirection;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   gWorld                                      c0       4
            //   gWorldViewProj                              c8       4
            //   SunDirection                                c64      1
            //   SkyColor                                    c65      1
            //   AzimuthColor                                c66      1
            //   AzimuthColorEast                            c67      1
            //   AzimuthHeight                               c68      1
            //   TopCloudBiasDetailThresholdHeight           c69      1
            //   CloudShadowOffset                           c70      1
            //   AzimuthStrength                             c71      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c72      1
            //   StarFieldUVRepeat                           c73      1
            //   GalaxyOffset                                c74      1
            //   DetailOffset                                c75      1
            //
            
                vs_3_0
                def c4, 0, 1, 9.99999975e-006, 1.5
                def c5, 0.5, -0.0187292993, 0.0742610022, -0.212114394
                def c6, 1.57072878, -2, 3.14159274, 1.57079637
                def c7, 0.317732662, 0.100000001, 0, 0
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1.xyz
                dcl_texcoord1 o2.xyz
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                dcl_texcoord5 o6.xyz
                mov r0.x, -v0.y
                max r0.x, r0.x, c4.x
                min r0.x, r0.x, c4.y
                mov r0.x, -r0.x
                add r0.x, r0.x, v0.y
                mul r1, c8, v0.x
                mul r2, r0.x, c9
                add r1, r1, r2
                mul r2, c10, v0.z
                add r1, r1, r2
                mul r2, c11, v0.w
                add r1, r1, r2
                mov r1, r1
                mov r2.xy, v1
                mov r1, r1
                mul r0.yzw, c0.xxyz, v0.x
                mul r3.xyz, r0.x, c1
                add r0.xyz, r0.yzww, r3
                mul r3.xyz, c2, v0.z
                add r0.xyz, r0, r3
                mul r3.xyz, c3, v0.w
                add r0.xyz, r0, r3
                mov r3.xyz, -c3
                add r0.xyz, r0, r3
                mov r2.xy, r2
                add r3.xyz, r0, c4.z
                dp3 r0.w, r3, r3
                rsq r0.w, r0.w
                mul r3.xyz, r3, r0.w
                mov r3.xyz, r3
                mul r0.w, r3.y, c4.w
                add r3.w, r0.w, c5.x
                add r4.xyz, r3.xwzw, c4.z
                dp3 r0.w, r4, r4
                rsq r0.w, r0.w
                mul r4.xy, r4.xzzw, r0.w
                mov r0.w, -r4.x
                max r2.w, r4.x, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.z, r2.w, c5.y
                add r4.z, r4.z, c5.z
                mul r4.z, r2.w, r4.z
                add r4.z, r4.z, c5.w
                mul r2.w, r2.w, r4.z
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.x, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.z, r0.w, c5.x
                mov r0.w, -r4.y
                max r2.w, r4.y, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.x, r2.w, c5.y
                add r4.x, r4.x, c5.z
                mul r4.x, r2.w, r4.x
                add r4.x, r4.x, c5.w
                mul r2.w, r2.w, r4.x
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.y, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.w, r0.w, c5.x
                add r4.zw, r4, c74.xyxy
                mul r4.xy, r4.zwzw, c73.x
                mov r3.zw, -r3.xyxz
                add r3.zw, r3, c64.xyxz
                mov r5.y, c7.y
                mul r5.xy, r5.y, c70.x
                mul r3.zw, r3, r5.xyxy
                mov r5.xy, r2
                mov r3.zw, r3
                mul r5.zw, r5.xyxy, -c6.y
                add r5.zw, r5, -c4.y
                mul r0.w, r5.z, r5.z
                mul r2.w, r5.w, r5.w
                add r0.w, r0.w, r2.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r3.zw, r3, r0.w
                add r6.xy, r2, r3.zwzw
                add r3.zw, r5.xyxy, -c5.x
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                add r3.zw, r3, c4.z
                mul r2.w, r3.z, r3.z
                mul r5.x, r3.w, r3.w
                add r2.w, r2.w, r5.x
                rsq r2.w, r2.w
                mul r3.zw, r3, r2.w
                mul r3.zw, r0.w, r3
                mul r3.zw, r3, c4.y
                mov r3.zw, r3
                mul r3.zw, r3, c72.z
                add r6.zw, r3, c75.xyxy
                add r3.zw, r2.xyxy, -c5.x
                mul r3.zw, r3, c69.w
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                mov r0.w, -r0.w
                add r5.z, r0.w, c4.y
                add r5.xy, r3.zwzw, c5.x
                mov r5.xy, r5
                mov r5.z, r5.z
                rcp r0.w, r1.w
                mul r0.w, r1.z, r0.w
                mov r0.w, -r0.w
                add r2.z, r0.w, c4.y
                mov r3.xy, r3
                mul r0.w, r3.y, c68.x
                max r0.w, r0.w, c4.x
                min r0.w, r0.w, c4.y
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r0.w, r0.w, c71.x
                mov r3.x, r3.x
                mul r2.w, r3.x, c4.y
                add r2.w, r2.w, c4.x
                mul r2.w, r2.w, c5.x
                add r2.w, r2.w, c5.x
                mov r3.xyz, -c67
                add r3.xyz, r3, c66
                mul r3.xyz, r2.w, r3
                add r3.xyz, r3, c67
                mul r3.xyz, r0.w, r3
                add r3.xyz, r3, c65
                mov r3.xyz, r3
                mov r1, r1
                mov r6.xy, r6
                mov r6.zw, r6
                mov r4.xy, r4
                mov r4.zw, r4
                mov r2.xy, r2
                mov r2.z, r2.z
                mov r0.xyz, r0
                mov r5.xy, r5
                mov r5.z, r5.z
                mov r3.xyz, r3
                mov o0, r1
                mov o3, r6
                mov o4, r4
                mov o1.xyz, r2
                mov o2.xyz, r0
                mov o5.xyz, r5
                mov o6.xyz, r3
            
            // approximately 166 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   float4 MoonColorConstant;
            //   float MoonGlow;
            //   sampler2D MoonGlowSampler;
            //   float4 MoonLight;
            //   float3 MoonPosition;
            //   sampler2D MoonSampler;
            //   float MoonVisiblity;
            //   float3 MoonXVector;
            //   float3 MoonYVector;
            //   sampler2D PerlinNoiseSampler;
            //   float4 StarFieldBrightness;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //   float3 gtaSkyDomeFade;
            //   float3 gtaWaterColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SunColor                                    c66      1
            //   gtaSkyDomeFade                              c67      1
            //   gtaWaterColor                               c68      1
            //   MoonGlow                                    c69      1
            //   CloudColor                                  c70      1
            //   SunsetColor                                 c71      1
            //   CloudThreshold                              c72      1
            //   CloudBias                                   c73      1
            //   CloudFadeOut                                c74      1
            //   TopCloudBiasDetailThresholdHeight           c75      1
            //   TopCloudColor                               c76      1
            //   CloudShadowStrength                         c77      1
            //   CloudInscatteringRange                      c78      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c79      1
            //   StarFieldBrightness                         c80      1
            //   MoonLight                                   c81      1
            //   MoonVisiblity                               c82      1
            //   SunSize                                     c83      1
            //   MoonColorConstant                           c84      1
            //   MoonPosition                                c85      1
            //   MoonXVector                                 c86      1
            //   MoonYVector                                 c87      1
            //   HDRExposure                                 c88      1
            //   HDRSunExposure                              c89      1
            //   HDRExposureClamp                            c90      1
            //   MoonSampler                                 s0       1
            //   MoonGlowSampler                             s1       1
            //   GalaxySampler                               s2       1
            //   PerlinNoiseSampler                          s3       1
            //   HighDetailNoiseSampler                      s4       1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0, 0
                def c1, 25.1599998, 0.5, -0.0625, -0.461699992
                def c2, 0.9375, 0.5, 32, 0.600000024
                def c3, 4, -2, 3, 0.200000003
                def c4, 0.349999994, 0.899999976, -0.00999999978, 0.99000001
                def c5, 64, 0.300000012, 0.699999988, 0.170000002
                def c6, 1.39999998, 0, 0, 0
                dcl_texcoord_pp v0.xy
                dcl_texcoord1_pp v1.xyz
                dcl_texcoord2_pp v2
                dcl_texcoord3_pp v3.zw
                dcl_texcoord4_pp v4.xyz
                dcl_texcoord5_pp v5.xyz
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                dcl_2d s3
                dcl_2d s4
                mov r0.xyz, v1
                mov_pp r1.xyz, v5
                mov_pp r2.xy, v2
                mov_pp r2.z, v4.z
                mov_pp r0.w, r0.y
                mov_pp r3.xyz, c65
                add r0.xyz, r0, c0.x
                dp3 r1.w, r0, r0
                rsq r1.w, r1.w
                mul_pp r0.xyz, r0, r1.w
                mov_pp r4.xyz, c66
                mov r1.w, c65.w
                mov r3.xyz, r3
                mov r0.xyz, r0
                mov r2.w, c83.x
                mov r3.w, -c89.y
                add r3.w, r3.w, c0.y
                add r4.w, r3.w, c0.z
                cmp r3.w, r4.w, r3.w, c0.w
                add r4.w, r3.w, -c0.y
                cmp r3.w, r4.w, c0.y, r3.w
                mul r3.w, r3.w, c1.x
                dp3 r3.x, r0, r3
                mul r5.x, r3.w, c1.y
                mov r5.yz, c1.xzyw
                mul r3.xyz, r3.x, r5
                mul r5.x, r3.w, c1.w
                mov r5.yz, c2.xxyw
                add r3.xyz, r3, r5
                add r5.xyz, r3, c0.z
                cmp r3.xyz, r5, r3, c0.w
                add r5.xyz, r3, -c0.y
                cmp r3.xyz, r5.zxyw, c0.y, r3.zxyw
                mov r3.w, -r3.y
                mov r4.w, -r3.w
                add r4.w, r3.y, r4.w
                cmp r3.y, r4.w, r3.y, r3.w
                log r3.y, r3.y
                mul r3.y, r3.y, c2.z
                exp r3.y, r3.y
                mov r3.w, -r3.z
                mov r4.w, -r3.w
                add r4.w, r3.z, r4.w
                cmp r3.z, r4.w, r3.z, r3.w
                mul r3.w, r3.z, c0.y
                mul r3.z, r3.z, r3.z
                mul r3.z, r3.w, r3.z
                add r1.w, r1.w, c2.w
                add r3.w, r1.w, c0.z
                cmp r1.w, r3.w, r1.w, c0.w
                add r3.w, r1.w, -c0.y
                cmp r1.w, r3.w, c0.y, r1.w
                mul r1.w, r3.z, r1.w
                mov r1.w, -r1.w
                add r1.w, r3.y, r1.w
                mul r2.w, r2.w, r3.x
                add r1.w, r1.w, r2.w
                mul r1.w, r1.w, c1.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mul r1.w, r1.w, c3.x
                mov r2.w, c64.x
                mov r3.y, c64.y
                mov r3.x, r3.x
                mul r3.x, r3.y, r3.x
                add r2.w, r2.w, r3.x
                add r3.x, r2.w, c0.z
                cmp r2.w, r3.x, r2.w, c0.w
                add r3.x, r2.w, -c0.y
                cmp r2.w, r3.x, c0.y, r2.w
                mul r3.x, r2.w, r2.w
                mul r2.w, r2.w, c3.y
                add r2.w, r2.w, c3.z
                mul r2.w, r3.x, r2.w
                mul r2.w, r2.w, c64.z
                add r3.xyz, r1.w, r2.w
                mov r1.w, -r3.z
                add r1.w, r1.w, c0.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp_pp r3.w, r2.w, c0.y, r1.w
                mov_pp r3.xyz, r3
                mov_pp r3, r3
                mul_pp r4.xyz, r4, r3
                mov_pp r5.xyz, -r4
                mov_pp r6.xyz, -r5
                add_pp r6.xyz, r4, r6
                cmp_pp r5.xyz, r6, r4, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, c0.y
                add_pp r3.xyz, r4, r5
                mul_pp r3, r3, c89.x
                mov_pp r1.xyz, r1
                mov_pp r2.xyz, r2
                mov_pp r3, r3
                texld_pp r4, v0, s3
                mov_pp r4.xy, r4.xzzw
                texld r5, v2.zwzw, s4
                add r1.w, r5.x, -c1.y
                mul r2.w, r1.w, c79.w
                add_pp r4.x, r4.x, r2.w
                mul r4.x, r4.x, c72.x
                mov r4.z, -c73.x
                add r4.x, r4.x, r4.z
                add r4.w, r4.x, c0.z
                cmp r4.x, r4.w, r4.x, c0.w
                add r4.w, r4.x, -c0.y
                cmp r4.x, r4.w, c0.y, r4.x
                mov_pp r4.w, -r4.x
                mov_pp r5.x, -r4.w
                add_pp r5.x, r4.x, r5.x
                cmp_pp r4.w, r5.x, r4.x, r4.w
                log r4.w, r4.w
                mul r4.w, r4.w, c79.x
                exp r4.w, r4.w
                mul r4.x, r4.x, c79.y
                add r5.x, r4.x, c0.z
                cmp r4.x, r5.x, r4.x, c0.w
                add r5.x, r4.x, -c0.y
                cmp r4.x, r5.x, c0.y, r4.x
                mul r4.x, r4.w, r4.x
                texld_pp r5, v2, s3
                mov_pp r5.x, r5.x
                mul r2.xy, r2, c79.z
                texld r6, r2, s4
                mul r2.x, r6.x, c79.w
                mul r2.x, r2.x, c3.w
                add_pp r2.x, r5.x, r2.x
                mul r2.x, r2.x, c72.x
                add r2.x, r4.z, r2.x
                mul r2.x, r2.x, c77.x
                add r2.y, r2.x, c0.z
                cmp r2.x, r2.y, r2.x, c0.w
                add r2.y, r2.x, -c0.y
                cmp r2.x, r2.y, c0.y, r2.x
                texld_pp r5, v4, s3
                mov_pp r2.y, r5.y
                mul r2.w, r2.w, c75.y
                add_pp r2.y, r2.y, r2.w
                mul r2.y, r2.y, c75.z
                mov r2.w, -c75.x
                add r2.y, r2.y, r2.w
                add r2.w, r2.y, c0.z
                cmp r2.y, r2.w, r2.y, c0.w
                add r2.w, r2.y, -c0.y
                cmp r2.y, r2.w, c0.y, r2.y
                mul_pp r2.y, r2.z, r2.y
                dp3 r2.z, r0, c65
                mul_pp r2.w, r2.z, r2.z
                mov r4.z, -r4.x
                add r4.z, r4.z, c0.y
                mul r4.w, r2.x, c1.y
                mov r4.w, -r4.w
                add r4.w, r4.z, r4.w
                add r5.x, r4.w, c0.z
                cmp r4.w, r5.x, r4.w, c0.w
                add r5.x, r4.w, -c0.y
                cmp r4.w, r5.x, c0.y, r4.w
                mul r2.w, r2.w, r4.w
                mul r2.w, r2.w, c78.x
                add_pp r2.w, r2.w, c0.y
                mul r2.w, r2.w, c0.y
                mul r1.w, r1.w, c3.w
                add r1.w, r4.y, r1.w
                add r4.y, r1.w, c0.z
                cmp r1.w, r4.y, r1.w, c0.w
                add r4.y, r1.w, -c0.y
                cmp r1.w, r4.y, c0.y, r1.w
                mov r4.y, -r2.x
                add r4.y, r4.y, c0.y
                mul r4.y, r4.x, r4.y
                mul r4.y, r1.w, r4.y
                add_pp r1.w, r1.w, r4.y
                mul r2.z, r2.z, c1.y
                mul r2.z, r2.z, c1.y
                add r2.z, r2.z, c4.x
                mul_pp r1.w, r1.w, r2.z
                mul r5.xyz, r2.w, c70
                mov r2.xzw, -r2.x
                add r2.xzw, r5.xyyz, r2
                mul r5.xyz, r1.w, c71
                add_pp r2.xzw, r2, r5.xyyz
                mov_pp r5.xyz, c76
                mul r1.w, r2.y, r4.z
                mov_pp r6.xyz, -r2.xzww
                add_pp r5.xyz, r5, r6
                mul_pp r5.xyz, r1.w, r5
                add_pp r2.xyz, r2.xzww, r5
                mul r1.w, r4.z, r1.w
                add r1.w, r4.x, r1.w
                mul_pp r1.xyz, r1, r3.w
                add_pp r4.xyz, r1, c0.z
                cmp_pp r1.xyz, r4, r1, c0.w
                add_pp r4.xyz, r1, -c0.y
                cmp_pp r1.xyz, r4, c0.y, r1
                add_pp r1.xyz, r3, r1
                texld r3, v3.zwzw, s2
                mul_pp r3.xyz, r3, c80.y
                mov r4.xyz, -c85
                add r4.xyz, r0, r4
                mov r5.xyz, -c86
                add r4.xyz, r4, r5
                mov r5.xyz, -c87
                add r4.xyz, r4, r5
                dp3 r5.x, c86, r4
                dp3 r5.y, c87, r4
                add r0.xz, r5.xyyw, -c1.y
                mul r0.xz, r0, c4.y
                add r0.xz, r0, c1.y
                add r2.w, r0.x, c4.z
                cmp r2.w, r2.w, c0.w, c0.y
                mov r3.w, -r0.x
                add r3.w, r3.w, c4.w
                cmp r3.w, r3.w, c0.w, c0.y
                add r2.w, r2.w, r3.w
                mov r2.w, -r2.w
                add r2.w, r2.w, r2.w
                cmp_pp r2.w, r2.w, c0.w, c0.y
                add r3.w, r0.z, c4.z
                cmp r3.w, r3.w, c0.w, c0.y
                mov r4.x, -r0.z
                add r4.x, r4.x, c4.w
                cmp r4.x, r4.x, c0.w, c0.y
                add r3.w, r3.w, r4.x
                mov r3.w, -r3.w
                add r3.w, r3.w, r3.w
                cmp_pp r3.w, r3.w, c0.w, c0.y
                mul r0.xz, r0, c81.xyyw
                add_pp r0.xz, r0, c81.zyww
                dsx_pp r4.xy, r0.xzzw
                dsy_pp r4.zw, r0.xyxz
                add_pp r2.w, r2.w, r3.w
                add r2.w, r2.w, c0.z
                mov r3.w, -r2.w
                mov r5.z, -r3.w
                add r5.z, r2.w, r5.z
                cmp r2.w, r5.z, r2.w, r3.w
                mov r2.w, -r2.w
                add r2.w, r2.w, r2.w
                cmp r2.w, r2.w, c0.y, c0.w
                if_ne r2.w, -r2.w
                  mov r2.w, -r5.x
                  add r2.w, r2.w, c0.y
                  cmp r2.w, r2.w, c0.w, c0.y
                  add r3.w, r5.x, c0.z
                  cmp r3.w, r3.w, c0.w, c0.y
                  add r2.w, r2.w, r3.w
                  mov r2.w, -r2.w
                  add r2.w, r2.w, r2.w
                  cmp_pp r5.zw, r2.w, c0.w, c0.y
                  add_pp r2.w, r5.w, r5.z
                  add_pp r3.w, r2.w, c0.z
                  cmp_pp r2.w, r3.w, r2.w, c0.w
                  add_pp r3.w, r2.w, -c0.y
                  cmp_pp r2.w, r3.w, c0.y, r2.w
                  mov r2.w, -r2.w
                  add_pp r2.w, r2.w, c0.y
                  mul r5.xy, r5, c81
                  add_pp r5.xy, r5, c81.zwzw
                  texldd_pp r5, r5, s0, r4, r4.zwzw
                  mul r5, r2.w, r5
                  mul r6.xyz, r5.w, c84
                  mul_pp r5.xyz, r5, r6
                  texldd_pp r4, r0.xzzw, s1, r4, r4.zwzw
                  mov_pp r4.x, r4.x
                  mov r4.y, c0.y
                  add r4.yzw, r4.y, c84.xxyz
                  mul r4.xyz, r4.x, r4.yzww
                  mul_pp r4.xyz, r4, c69.x
                  add_pp r5.xyz, r5, r4
                  mov r2.w, c84.w
                  mul r0.x, r2.w, c5.x
                  add r0.z, r0.x, c0.z
                  cmp r0.x, r0.z, r0.x, c0.w
                  add r0.z, r0.x, -c0.y
                  cmp r0.x, r0.z, c0.y, r0.x
                  mul r0.x, r5.w, r0.x
                  mov r0.x, -r0.x
                  add r0.x, r0.x, c0.y
                  mul r3.xyz, r3, r0.x
                  dp3_pp r0.x, r1, c5.yzww
                  mul_pp r0.x, r0.x, c82.x
                  mov r0.x, -r0.x
                  add_pp r0.x, r0.x, c0.y
                  add_pp r0.z, r0.x, c0.z
                  cmp_pp r0.x, r0.z, r0.x, c0.w
                  add_pp r0.z, r0.x, -c0.y
                  cmp_pp r0.x, r0.z, c0.y, r0.x
                  mul_pp r0.x, r0.x, r0.x
                  mov r0.z, -r1.w
                  add r2.w, r0.z, c0.y
                  mul_pp r0.x, r0.x, r2.w
                  mul_pp r5.xyz, r5, r0.x
                  mul_pp r4.xyz, r4, r0.x
                  add r0.x, r0.z, c6.x
                  mul r4.xyz, r4, r0.x
                  add r4.xyz, r4, c0.y
                  mul r2.xyz, r2, r4
                  add r1.xyz, r1, r5
                endif
                add_pp r1.xyz, r1, r3
                mul r0.x, r0.y, c3.x
                mov r0.y, -c74.x
                add r0.x, r0.x, r0.y
                add r0.y, r0.x, c0.z
                cmp r0.x, r0.y, r0.x, c0.w
                add r0.y, r0.x, -c0.y
                cmp_pp r0.x, r0.y, c0.y, r0.x
                mul_pp r0.x, r1.w, r0.x
                mov_pp r3.xyz, -r1
                add_pp r2.xyz, r2, r3
                mul_pp r0.xyz, r0.x, r2
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c88.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c90
                cmp_pp r0.xyz, r1, r0, c90
                mov_pp r0.xyz, r0
                mov_pp r0.xyz, r0
                mov r1.xyz, -c90
                add r1.xyz, r0, r1
                cmp r0.xyz, r1, c90, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.w, -r0.w
                add r0.w, r0.w, c67.x
                mul r0.w, r0.w, c67.y
                add r1.x, r0.w, c0.z
                cmp r0.w, r1.x, r0.w, c0.w
                add r1.x, r0.w, -c0.y
                cmp r0.w, r1.x, c0.y, r0.w
                mov r1.xyz, c68
                mov r2.xyz, -r0
                add r1.xyz, r1, r2
                mul r1.xyz, r0.w, r1
                add r0.xyz, r0, r1
                mov r0.xyz, r0
                mov r0.w, c0.y
                mov oC0, r0
            
            // approximately 352 instruction slots used (8 texture, 344 arithmetic)
            };
    }
}

technique draw_withstarfield
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudShadowOffset;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float2 DetailOffset;
            //   float2 GalaxyOffset;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 SunDirection;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   gWorld                                      c0       4
            //   gWorldViewProj                              c8       4
            //   SunDirection                                c64      1
            //   SkyColor                                    c65      1
            //   AzimuthColor                                c66      1
            //   AzimuthColorEast                            c67      1
            //   AzimuthHeight                               c68      1
            //   TopCloudBiasDetailThresholdHeight           c69      1
            //   CloudShadowOffset                           c70      1
            //   AzimuthStrength                             c71      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c72      1
            //   StarFieldUVRepeat                           c73      1
            //   GalaxyOffset                                c74      1
            //   DetailOffset                                c75      1
            //
            
                vs_3_0
                def c4, 0, 1, 9.99999975e-006, 1.5
                def c5, 0.5, -0.0187292993, 0.0742610022, -0.212114394
                def c6, 1.57072878, -2, 3.14159274, 1.57079637
                def c7, 0.317732662, 0.100000001, 0, 0
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1.xyz
                dcl_texcoord1 o2.xyz
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                dcl_texcoord5 o6.xyz
                mov r0.x, -v0.y
                max r0.x, r0.x, c4.x
                min r0.x, r0.x, c4.y
                mov r0.x, -r0.x
                add r0.x, r0.x, v0.y
                mul r1, c8, v0.x
                mul r2, r0.x, c9
                add r1, r1, r2
                mul r2, c10, v0.z
                add r1, r1, r2
                mul r2, c11, v0.w
                add r1, r1, r2
                mov r1, r1
                mov r2.xy, v1
                mov r1, r1
                mul r0.yzw, c0.xxyz, v0.x
                mul r3.xyz, r0.x, c1
                add r0.xyz, r0.yzww, r3
                mul r3.xyz, c2, v0.z
                add r0.xyz, r0, r3
                mul r3.xyz, c3, v0.w
                add r0.xyz, r0, r3
                mov r3.xyz, -c3
                add r0.xyz, r0, r3
                mov r2.xy, r2
                add r3.xyz, r0, c4.z
                dp3 r0.w, r3, r3
                rsq r0.w, r0.w
                mul r3.xyz, r3, r0.w
                mov r3.xyz, r3
                mul r0.w, r3.y, c4.w
                add r3.w, r0.w, c5.x
                add r4.xyz, r3.xwzw, c4.z
                dp3 r0.w, r4, r4
                rsq r0.w, r0.w
                mul r4.xy, r4.xzzw, r0.w
                mov r0.w, -r4.x
                max r2.w, r4.x, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.z, r2.w, c5.y
                add r4.z, r4.z, c5.z
                mul r4.z, r2.w, r4.z
                add r4.z, r4.z, c5.w
                mul r2.w, r2.w, r4.z
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.x, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.z, r0.w, c5.x
                mov r0.w, -r4.y
                max r2.w, r4.y, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.x, r2.w, c5.y
                add r4.x, r4.x, c5.z
                mul r4.x, r2.w, r4.x
                add r4.x, r4.x, c5.w
                mul r2.w, r2.w, r4.x
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.y, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.w, r0.w, c5.x
                add r4.zw, r4, c74.xyxy
                mul r4.xy, r4.zwzw, c73.x
                mov r3.zw, -r3.xyxz
                add r3.zw, r3, c64.xyxz
                mov r5.y, c7.y
                mul r5.xy, r5.y, c70.x
                mul r3.zw, r3, r5.xyxy
                mov r5.xy, r2
                mov r3.zw, r3
                mul r5.zw, r5.xyxy, -c6.y
                add r5.zw, r5, -c4.y
                mul r0.w, r5.z, r5.z
                mul r2.w, r5.w, r5.w
                add r0.w, r0.w, r2.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r3.zw, r3, r0.w
                add r6.xy, r2, r3.zwzw
                add r3.zw, r5.xyxy, -c5.x
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                add r3.zw, r3, c4.z
                mul r2.w, r3.z, r3.z
                mul r5.x, r3.w, r3.w
                add r2.w, r2.w, r5.x
                rsq r2.w, r2.w
                mul r3.zw, r3, r2.w
                mul r3.zw, r0.w, r3
                mul r3.zw, r3, c4.y
                mov r3.zw, r3
                mul r3.zw, r3, c72.z
                add r6.zw, r3, c75.xyxy
                add r3.zw, r2.xyxy, -c5.x
                mul r3.zw, r3, c69.w
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                mov r0.w, -r0.w
                add r5.z, r0.w, c4.y
                add r5.xy, r3.zwzw, c5.x
                mov r5.xy, r5
                mov r5.z, r5.z
                rcp r0.w, r1.w
                mul r0.w, r1.z, r0.w
                mov r0.w, -r0.w
                add r2.z, r0.w, c4.y
                mov r3.xy, r3
                mul r0.w, r3.y, c68.x
                max r0.w, r0.w, c4.x
                min r0.w, r0.w, c4.y
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r0.w, r0.w, c71.x
                mov r3.x, r3.x
                mul r2.w, r3.x, c4.y
                add r2.w, r2.w, c4.x
                mul r2.w, r2.w, c5.x
                add r2.w, r2.w, c5.x
                mov r3.xyz, -c67
                add r3.xyz, r3, c66
                mul r3.xyz, r2.w, r3
                add r3.xyz, r3, c67
                mul r3.xyz, r0.w, r3
                add r3.xyz, r3, c65
                mov r3.xyz, r3
                mov r1, r1
                mov r6.xy, r6
                mov r6.zw, r6
                mov r4.xy, r4
                mov r4.zw, r4
                mov r2.xy, r2
                mov r2.z, r2.z
                mov r0.xyz, r0
                mov r5.xy, r5
                mov r5.z, r5.z
                mov r3.xyz, r3
                mov o0, r1
                mov o3, r6
                mov o4, r4
                mov o1.xyz, r2
                mov o2.xyz, r0
                mov o5.xyz, r5
                mov o6.xyz, r3
            
            // approximately 166 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   sampler2D PerlinNoiseSampler;
            //   float4 StarFieldBrightness;
            //   sampler2D StarFieldSampler;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //   float3 gtaSkyDomeFade;
            //   float3 gtaWaterColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SunColor                                    c66      1
            //   gtaSkyDomeFade                              c67      1
            //   gtaWaterColor                               c68      1
            //   CloudColor                                  c69      1
            //   SunsetColor                                 c70      1
            //   CloudThreshold                              c71      1
            //   CloudBias                                   c72      1
            //   CloudFadeOut                                c73      1
            //   TopCloudBiasDetailThresholdHeight           c74      1
            //   TopCloudColor                               c75      1
            //   CloudShadowStrength                         c76      1
            //   CloudInscatteringRange                      c77      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c78      1
            //   StarFieldBrightness                         c79      1
            //   SunSize                                     c80      1
            //   HDRExposure                                 c81      1
            //   HDRSunExposure                              c82      1
            //   HDRExposureClamp                            c83      1
            //   StarFieldSampler                            s0       1
            //   GalaxySampler                               s1       1
            //   PerlinNoiseSampler                          s2       1
            //   HighDetailNoiseSampler                      s3       1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0, 0
                def c1, 25.1599998, 0.5, -0.0625, -0.461699992
                def c2, 0.9375, 0.5, 32, 0.600000024
                def c3, 4, -2, 3, 0.200000003
                def c4, 0.349999994, 1.20000005, 0, 0
                dcl_texcoord_pp v0.xy
                dcl_texcoord1_pp v1.xyz
                dcl_texcoord2_pp v2
                dcl_texcoord3_pp v3
                dcl_texcoord4_pp v4.xyz
                dcl_texcoord5_pp v5.xyz
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                dcl_2d s3
                mov r0.xyz, v1
                mov_pp r1.xyz, v5
                mov_pp r2.xy, v2
                mov_pp r2.z, v4.z
                mov_pp r0.w, r0.y
                mov_pp r3.xyz, c65
                add r0.xyz, r0, c0.x
                dp3 r1.w, r0, r0
                rsq r1.w, r1.w
                mul_pp r0.xyz, r0, r1.w
                mov_pp r4.xyz, c66
                mov r1.w, c65.w
                mov r3.xyz, r3
                mov r0.xyz, r0
                mov r2.w, c80.x
                mov r3.w, -c82.y
                add r3.w, r3.w, c0.y
                add r4.w, r3.w, c0.z
                cmp r3.w, r4.w, r3.w, c0.w
                add r4.w, r3.w, -c0.y
                cmp r3.w, r4.w, c0.y, r3.w
                mul r3.w, r3.w, c1.x
                dp3 r3.x, r0, r3
                mul r5.x, r3.w, c1.y
                mov r5.yz, c1.xzyw
                mul r3.xyz, r3.x, r5
                mul r5.x, r3.w, c1.w
                mov r5.yz, c2.xxyw
                add r3.xyz, r3, r5
                add r5.xyz, r3, c0.z
                cmp r3.xyz, r5, r3, c0.w
                add r5.xyz, r3, -c0.y
                cmp r3.xyz, r5.zxyw, c0.y, r3.zxyw
                mov r3.w, -r3.y
                mov r4.w, -r3.w
                add r4.w, r3.y, r4.w
                cmp r3.y, r4.w, r3.y, r3.w
                log r3.y, r3.y
                mul r3.y, r3.y, c2.z
                exp r3.y, r3.y
                mov r3.w, -r3.z
                mov r4.w, -r3.w
                add r4.w, r3.z, r4.w
                cmp r3.z, r4.w, r3.z, r3.w
                mul r3.w, r3.z, c0.y
                mul r3.z, r3.z, r3.z
                mul r3.z, r3.w, r3.z
                add r1.w, r1.w, c2.w
                add r3.w, r1.w, c0.z
                cmp r1.w, r3.w, r1.w, c0.w
                add r3.w, r1.w, -c0.y
                cmp r1.w, r3.w, c0.y, r1.w
                mul r1.w, r3.z, r1.w
                mov r1.w, -r1.w
                add r1.w, r3.y, r1.w
                mul r2.w, r2.w, r3.x
                add r1.w, r1.w, r2.w
                mul r1.w, r1.w, c1.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mul r1.w, r1.w, c3.x
                mov r2.w, c64.x
                mov r3.y, c64.y
                mov r3.x, r3.x
                mul r3.x, r3.y, r3.x
                add r2.w, r2.w, r3.x
                add r3.x, r2.w, c0.z
                cmp r2.w, r3.x, r2.w, c0.w
                add r3.x, r2.w, -c0.y
                cmp r2.w, r3.x, c0.y, r2.w
                mul r3.x, r2.w, r2.w
                mul r2.w, r2.w, c3.y
                add r2.w, r2.w, c3.z
                mul r2.w, r3.x, r2.w
                mul r2.w, r2.w, c64.z
                add r3.xyz, r1.w, r2.w
                mov r1.w, -r3.z
                add r1.w, r1.w, c0.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp_pp r3.w, r2.w, c0.y, r1.w
                mov_pp r3.xyz, r3
                mov_pp r3, r3
                mul_pp r4.xyz, r4, r3
                mov_pp r5.xyz, -r4
                mov_pp r6.xyz, -r5
                add_pp r6.xyz, r4, r6
                cmp_pp r5.xyz, r6, r4, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, c0.y
                add_pp r3.xyz, r4, r5
                mul_pp r3, r3, c82.x
                mov_pp r1.xyz, r1
                mov_pp r2.xyz, r2
                mov_pp r3, r3
                texld_pp r4, v0, s2
                mov_pp r4.xy, r4.xzzw
                texld r5, v2.zwzw, s3
                add r1.w, r5.x, -c1.y
                mul r2.w, r1.w, c78.w
                add_pp r4.x, r4.x, r2.w
                mul r4.x, r4.x, c71.x
                mov r4.z, -c72.x
                add r4.x, r4.x, r4.z
                add r4.w, r4.x, c0.z
                cmp r4.x, r4.w, r4.x, c0.w
                add r4.w, r4.x, -c0.y
                cmp r4.x, r4.w, c0.y, r4.x
                mov_pp r4.w, -r4.x
                mov_pp r5.x, -r4.w
                add_pp r5.x, r4.x, r5.x
                cmp_pp r4.w, r5.x, r4.x, r4.w
                log r4.w, r4.w
                mul r4.w, r4.w, c78.x
                exp r4.w, r4.w
                mul r4.x, r4.x, c78.y
                add r5.x, r4.x, c0.z
                cmp r4.x, r5.x, r4.x, c0.w
                add r5.x, r4.x, -c0.y
                cmp r4.x, r5.x, c0.y, r4.x
                mul r4.x, r4.w, r4.x
                texld_pp r5, v2, s2
                mov_pp r5.x, r5.x
                mul r2.xy, r2, c78.z
                texld r6, r2, s3
                mul r2.x, r6.x, c78.w
                mul r2.x, r2.x, c3.w
                add_pp r2.x, r5.x, r2.x
                mul r2.x, r2.x, c71.x
                add r2.x, r4.z, r2.x
                mul r2.x, r2.x, c76.x
                add r2.y, r2.x, c0.z
                cmp r2.x, r2.y, r2.x, c0.w
                add r2.y, r2.x, -c0.y
                cmp r2.x, r2.y, c0.y, r2.x
                texld_pp r5, v4, s2
                mov_pp r2.y, r5.y
                mul r2.w, r2.w, c74.y
                add_pp r2.y, r2.y, r2.w
                mul r2.y, r2.y, c74.z
                mov r2.w, -c74.x
                add r2.y, r2.y, r2.w
                add r2.w, r2.y, c0.z
                cmp r2.y, r2.w, r2.y, c0.w
                add r2.w, r2.y, -c0.y
                cmp r2.y, r2.w, c0.y, r2.y
                mul_pp r2.y, r2.z, r2.y
                dp3 r0.x, r0, c65
                mul_pp r0.z, r0.x, r0.x
                mov r2.z, -r4.x
                add r2.z, r2.z, c0.y
                mul r2.w, r2.x, c1.y
                mov r2.w, -r2.w
                add r2.w, r2.z, r2.w
                add r4.z, r2.w, c0.z
                cmp r2.w, r4.z, r2.w, c0.w
                add r4.z, r2.w, -c0.y
                cmp r2.w, r4.z, c0.y, r2.w
                mul r0.z, r0.z, r2.w
                mul r0.z, r0.z, c77.x
                add_pp r0.z, r0.z, c0.y
                mul r0.z, r0.z, c0.y
                mul r1.w, r1.w, c3.w
                add r1.w, r4.y, r1.w
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mov r2.w, -r2.x
                add r2.w, r2.w, c0.y
                mul r2.w, r4.x, r2.w
                mul r2.w, r1.w, r2.w
                add_pp r1.w, r1.w, r2.w
                mul r0.x, r0.x, c1.y
                mul r0.x, r0.x, c1.y
                add r0.x, r0.x, c4.x
                mul_pp r0.x, r1.w, r0.x
                mul r4.yzw, r0.z, c69.xxyz
                mov r5.xyz, -r2.x
                add r4.yzw, r4, r5.xxyz
                mul r5.xyz, r0.x, c70
                add_pp r4.yzw, r4, r5.xxyz
                mov_pp r5.xyz, c75
                mul r0.x, r2.y, r2.z
                mov_pp r2.xyw, -r4.yzzw
                add_pp r2.xyw, r5.xyzz, r2
                mul_pp r2.xyw, r0.x, r2
                add_pp r2.xyw, r4.yzzw, r2
                mul r0.x, r2.z, r0.x
                add_pp r0.x, r4.x, r0.x
                mul_pp r1.xyz, r1, r3.w
                add_pp r4.xyz, r1, c0.z
                cmp_pp r1.xyz, r4, r1, c0.w
                add_pp r4.xyz, r1, -c0.y
                cmp_pp r1.xyz, r4, c0.y, r1
                add_pp r1.xyz, r3, r1
                texld r3, v3, s0
                mul r3.xyz, r3, c79.x
                mov r4.xyz, -c79.z
                add_pp r3.xyz, r3, r4
                texld r4, v3.zwzw, s1
                mul r4.xyz, r4, c79.y
                dp3 r0.z, r4, c4.y
                mul r5.xyz, r3, r0.z
                add r3.xyz, r3, r5
                add r3.xyz, r4, r3
                add r4.xyz, r3, c0.z
                cmp r3.xyz, r4, r3, c0.w
                add r4.xyz, r3, -c0.y
                cmp_pp r3.xyz, r4, c0.y, r3
                add_pp r1.xyz, r1, r3
                mul r0.y, r0.y, c3.x
                mov r0.z, -c73.x
                add r0.y, r0.y, r0.z
                add r0.z, r0.y, c0.z
                cmp r0.y, r0.z, r0.y, c0.w
                add r0.z, r0.y, -c0.y
                cmp_pp r0.y, r0.z, c0.y, r0.y
                mul_pp r0.x, r0.x, r0.y
                mov_pp r3.xyz, -r1
                add_pp r2.xyz, r2.xyww, r3
                mul_pp r0.xyz, r0.x, r2
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c81.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c83
                cmp_pp r0.xyz, r1, r0, c83
                mov_pp r0.xyz, r0
                mov_pp r0.xyz, r0
                mov r1.xyz, -c83
                add r1.xyz, r0, r1
                cmp r0.xyz, r1, c83, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.w, -r0.w
                add r0.w, r0.w, c67.x
                mul r0.w, r0.w, c67.y
                add r1.x, r0.w, c0.z
                cmp r0.w, r1.x, r0.w, c0.w
                add r1.x, r0.w, -c0.y
                cmp r0.w, r1.x, c0.y, r0.w
                mov r1.xyz, c68
                mov r2.xyz, -r0
                add r1.xyz, r1, r2
                mul r1.xyz, r0.w, r1
                add r0.xyz, r0, r1
                mov r0.xyz, r0
                mov r0.w, c0.y
                mov oC0, r0
            
            // approximately 254 instruction slots used (7 texture, 247 arithmetic)
            };
    }
}

technique draw_withstarfield_withmoon
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float3 AzimuthColor;
            //   float3 AzimuthColorEast;
            //   float AzimuthHeight;
            //   float AzimuthStrength;
            //   float CloudShadowOffset;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float2 DetailOffset;
            //   float2 GalaxyOffset;
            //   float3 SkyColor;
            //   float StarFieldUVRepeat;
            //   float4 SunDirection;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   row_major float4x4 gWorld;
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   gWorld                                      c0       4
            //   gWorldViewProj                              c8       4
            //   SunDirection                                c64      1
            //   SkyColor                                    c65      1
            //   AzimuthColor                                c66      1
            //   AzimuthColorEast                            c67      1
            //   AzimuthHeight                               c68      1
            //   TopCloudBiasDetailThresholdHeight           c69      1
            //   CloudShadowOffset                           c70      1
            //   AzimuthStrength                             c71      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c72      1
            //   StarFieldUVRepeat                           c73      1
            //   GalaxyOffset                                c74      1
            //   DetailOffset                                c75      1
            //
            
                vs_3_0
                def c4, 0, 1, 9.99999975e-006, 1.5
                def c5, 0.5, -0.0187292993, 0.0742610022, -0.212114394
                def c6, 1.57072878, -2, 3.14159274, 1.57079637
                def c7, 0.317732662, 0.100000001, 0, 0
                dcl_position v0
                dcl_texcoord v1
                dcl_position o0
                dcl_texcoord o1.xyz
                dcl_texcoord1 o2.xyz
                dcl_texcoord2 o3
                dcl_texcoord3 o4
                dcl_texcoord4 o5.xyz
                dcl_texcoord5 o6.xyz
                mov r0.x, -v0.y
                max r0.x, r0.x, c4.x
                min r0.x, r0.x, c4.y
                mov r0.x, -r0.x
                add r0.x, r0.x, v0.y
                mul r1, c8, v0.x
                mul r2, r0.x, c9
                add r1, r1, r2
                mul r2, c10, v0.z
                add r1, r1, r2
                mul r2, c11, v0.w
                add r1, r1, r2
                mov r1, r1
                mov r2.xy, v1
                mov r1, r1
                mul r0.yzw, c0.xxyz, v0.x
                mul r3.xyz, r0.x, c1
                add r0.xyz, r0.yzww, r3
                mul r3.xyz, c2, v0.z
                add r0.xyz, r0, r3
                mul r3.xyz, c3, v0.w
                add r0.xyz, r0, r3
                mov r3.xyz, -c3
                add r0.xyz, r0, r3
                mov r2.xy, r2
                add r3.xyz, r0, c4.z
                dp3 r0.w, r3, r3
                rsq r0.w, r0.w
                mul r3.xyz, r3, r0.w
                mov r3.xyz, r3
                mul r0.w, r3.y, c4.w
                add r3.w, r0.w, c5.x
                add r4.xyz, r3.xwzw, c4.z
                dp3 r0.w, r4, r4
                rsq r0.w, r0.w
                mul r4.xy, r4.xzzw, r0.w
                mov r0.w, -r4.x
                max r2.w, r4.x, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.z, r2.w, c5.y
                add r4.z, r4.z, c5.z
                mul r4.z, r2.w, r4.z
                add r4.z, r4.z, c5.w
                mul r2.w, r2.w, r4.z
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.x, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.z, r0.w, c5.x
                mov r0.w, -r4.y
                max r2.w, r4.y, r0.w
                mov r3.w, -r2.w
                add r3.w, r3.w, c4.y
                rsq r3.w, r3.w
                rcp r3.w, r3.w
                mul r4.x, r2.w, c5.y
                add r4.x, r4.x, c5.z
                mul r4.x, r2.w, r4.x
                add r4.x, r4.x, c5.w
                mul r2.w, r2.w, r4.x
                add r2.w, r2.w, c6.x
                mul r2.w, r3.w, r2.w
                mul r3.w, r2.w, c6.y
                add r3.w, r3.w, c6.z
                slt r0.w, r4.y, r0.w
                mul r0.w, r3.w, r0.w
                add r0.w, r2.w, r0.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c6.w
                mul r0.w, r0.w, c7.x
                add r4.w, r0.w, c5.x
                add r4.zw, r4, c74.xyxy
                mul r4.xy, r4.zwzw, c73.x
                mov r3.zw, -r3.xyxz
                add r3.zw, r3, c64.xyxz
                mov r5.y, c7.y
                mul r5.xy, r5.y, c70.x
                mul r3.zw, r3, r5.xyxy
                mov r5.xy, r2
                mov r3.zw, r3
                mul r5.zw, r5.xyxy, -c6.y
                add r5.zw, r5, -c4.y
                mul r0.w, r5.z, r5.z
                mul r2.w, r5.w, r5.w
                add r0.w, r0.w, r2.w
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r3.zw, r3, r0.w
                add r6.xy, r2, r3.zwzw
                add r3.zw, r5.xyxy, -c5.x
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                add r3.zw, r3, c4.z
                mul r2.w, r3.z, r3.z
                mul r5.x, r3.w, r3.w
                add r2.w, r2.w, r5.x
                rsq r2.w, r2.w
                mul r3.zw, r3, r2.w
                mul r3.zw, r0.w, r3
                mul r3.zw, r3, c4.y
                mov r3.zw, r3
                mul r3.zw, r3, c72.z
                add r6.zw, r3, c75.xyxy
                add r3.zw, r2.xyxy, -c5.x
                mul r3.zw, r3, c69.w
                mul r0.w, r3.z, r3.z
                mul r2.w, r3.w, r3.w
                add r0.w, r0.w, r2.w
                rsq r0.w, r0.w
                rcp r0.w, r0.w
                mov r0.w, -r0.w
                add r5.z, r0.w, c4.y
                add r5.xy, r3.zwzw, c5.x
                mov r5.xy, r5
                mov r5.z, r5.z
                rcp r0.w, r1.w
                mul r0.w, r1.z, r0.w
                mov r0.w, -r0.w
                add r2.z, r0.w, c4.y
                mov r3.xy, r3
                mul r0.w, r3.y, c68.x
                max r0.w, r0.w, c4.x
                min r0.w, r0.w, c4.y
                mov r0.w, -r0.w
                add r0.w, r0.w, c4.y
                mul r0.w, r0.w, c71.x
                mov r3.x, r3.x
                mul r2.w, r3.x, c4.y
                add r2.w, r2.w, c4.x
                mul r2.w, r2.w, c5.x
                add r2.w, r2.w, c5.x
                mov r3.xyz, -c67
                add r3.xyz, r3, c66
                mul r3.xyz, r2.w, r3
                add r3.xyz, r3, c67
                mul r3.xyz, r0.w, r3
                add r3.xyz, r3, c65
                mov r3.xyz, r3
                mov r1, r1
                mov r6.xy, r6
                mov r6.zw, r6
                mov r4.xy, r4
                mov r4.zw, r4
                mov r2.xy, r2
                mov r2.z, r2.z
                mov r0.xyz, r0
                mov r5.xy, r5
                mov r5.z, r5.z
                mov r3.xyz, r3
                mov o0, r1
                mov o3, r6
                mov o4, r4
                mov o1.xyz, r2
                mov o2.xyz, r0
                mov o5.xyz, r5
                mov o6.xyz, r3
            
            // approximately 166 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   float CloudBias;
            //   float4 CloudColor;
            //   float CloudFadeOut;
            //   float CloudInscatteringRange;
            //   float CloudShadowStrength;
            //   float4 CloudThicknessEdgeSmoothDetailScaleStrength;
            //   float CloudThreshold;
            //   sampler2D GalaxySampler;
            //   float HDRExposure;
            //   float3 HDRExposureClamp;
            //   float3 HDRSunExposure;
            //   sampler2D HighDetailNoiseSampler;
            //   float4 MoonColorConstant;
            //   float MoonGlow;
            //   sampler2D MoonGlowSampler;
            //   float4 MoonLight;
            //   float3 MoonPosition;
            //   sampler2D MoonSampler;
            //   float MoonVisiblity;
            //   float3 MoonXVector;
            //   float3 MoonYVector;
            //   sampler2D PerlinNoiseSampler;
            //   float4 StarFieldBrightness;
            //   sampler2D StarFieldSampler;
            //   float3 SunCentre;
            //   float3 SunColor;
            //   float4 SunDirection;
            //   float SunSize;
            //   float4 SunsetColor;
            //   float4 TopCloudBiasDetailThresholdHeight;
            //   float3 TopCloudColor;
            //   float3 gtaSkyDomeFade;
            //   float3 gtaWaterColor;
            //
            //
            // Registers:
            //
            //   Name                                        Reg   Size
            //   ------------------------------------------- ----- ----
            //   SunCentre                                   c64      1
            //   SunDirection                                c65      1
            //   SunColor                                    c66      1
            //   gtaSkyDomeFade                              c67      1
            //   gtaWaterColor                               c68      1
            //   MoonGlow                                    c69      1
            //   CloudColor                                  c70      1
            //   SunsetColor                                 c71      1
            //   CloudThreshold                              c72      1
            //   CloudBias                                   c73      1
            //   CloudFadeOut                                c74      1
            //   TopCloudBiasDetailThresholdHeight           c75      1
            //   TopCloudColor                               c76      1
            //   CloudShadowStrength                         c77      1
            //   CloudInscatteringRange                      c78      1
            //   CloudThicknessEdgeSmoothDetailScaleStrength c79      1
            //   StarFieldBrightness                         c80      1
            //   MoonLight                                   c81      1
            //   MoonVisiblity                               c82      1
            //   SunSize                                     c83      1
            //   MoonColorConstant                           c84      1
            //   MoonPosition                                c85      1
            //   MoonXVector                                 c86      1
            //   MoonYVector                                 c87      1
            //   HDRExposure                                 c88      1
            //   HDRSunExposure                              c89      1
            //   HDRExposureClamp                            c90      1
            //   MoonSampler                                 s0       1
            //   MoonGlowSampler                             s1       1
            //   StarFieldSampler                            s2       1
            //   GalaxySampler                               s3       1
            //   PerlinNoiseSampler                          s4       1
            //   HighDetailNoiseSampler                      s5       1
            //
            
                ps_3_0
                def c0, 9.99999975e-006, 1, 0, 0
                def c1, 25.1599998, 0.5, -0.0625, -0.461699992
                def c2, 0.9375, 0.5, 32, 0.600000024
                def c3, 4, -2, 3, 0.200000003
                def c4, 0.349999994, 1.20000005, 0.899999976, -0.00999999978
                def c5, 0.99000001, 64, 1.39999998, 0
                def c6, 0.300000012, 0.699999988, 0.170000002, 0
                dcl_texcoord_pp v0.xy
                dcl_texcoord1_pp v1.xyz
                dcl_texcoord2_pp v2
                dcl_texcoord3_pp v3
                dcl_texcoord4_pp v4.xyz
                dcl_texcoord5_pp v5.xyz
                dcl_2d s0
                dcl_2d s1
                dcl_2d s2
                dcl_2d s3
                dcl_2d s4
                dcl_2d s5
                mov r0.xyz, v1
                mov_pp r1.xyz, v5
                mov_pp r2.xy, v2
                mov_pp r2.z, v4.z
                mov_pp r0.w, r0.y
                mov_pp r3.xyz, c65
                add r0.xyz, r0, c0.x
                dp3 r1.w, r0, r0
                rsq r1.w, r1.w
                mul_pp r0.xyz, r0, r1.w
                mov_pp r4.xyz, c66
                mov r1.w, c65.w
                mov r3.xyz, r3
                mov r0.xyz, r0
                mov r2.w, c83.x
                mov r3.w, -c89.y
                add r3.w, r3.w, c0.y
                add r4.w, r3.w, c0.z
                cmp r3.w, r4.w, r3.w, c0.w
                add r4.w, r3.w, -c0.y
                cmp r3.w, r4.w, c0.y, r3.w
                mul r3.w, r3.w, c1.x
                dp3 r3.x, r0, r3
                mul r5.x, r3.w, c1.y
                mov r5.yz, c1.xzyw
                mul r3.xyz, r3.x, r5
                mul r5.x, r3.w, c1.w
                mov r5.yz, c2.xxyw
                add r3.xyz, r3, r5
                add r5.xyz, r3, c0.z
                cmp r3.xyz, r5, r3, c0.w
                add r5.xyz, r3, -c0.y
                cmp r3.xyz, r5.zxyw, c0.y, r3.zxyw
                mov r3.w, -r3.y
                mov r4.w, -r3.w
                add r4.w, r3.y, r4.w
                cmp r3.y, r4.w, r3.y, r3.w
                log r3.y, r3.y
                mul r3.y, r3.y, c2.z
                exp r3.y, r3.y
                mov r3.w, -r3.z
                mov r4.w, -r3.w
                add r4.w, r3.z, r4.w
                cmp r3.z, r4.w, r3.z, r3.w
                mul r3.w, r3.z, c0.y
                mul r3.z, r3.z, r3.z
                mul r3.z, r3.w, r3.z
                add r1.w, r1.w, c2.w
                add r3.w, r1.w, c0.z
                cmp r1.w, r3.w, r1.w, c0.w
                add r3.w, r1.w, -c0.y
                cmp r1.w, r3.w, c0.y, r1.w
                mul r1.w, r3.z, r1.w
                mov r1.w, -r1.w
                add r1.w, r3.y, r1.w
                mul r2.w, r2.w, r3.x
                add r1.w, r1.w, r2.w
                mul r1.w, r1.w, c1.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp r1.w, r2.w, c0.y, r1.w
                mul r1.w, r1.w, c3.x
                mov r2.w, c64.x
                mov r3.y, c64.y
                mov r3.x, r3.x
                mul r3.x, r3.y, r3.x
                add r2.w, r2.w, r3.x
                add r3.x, r2.w, c0.z
                cmp r2.w, r3.x, r2.w, c0.w
                add r3.x, r2.w, -c0.y
                cmp r2.w, r3.x, c0.y, r2.w
                mul r3.x, r2.w, r2.w
                mul r2.w, r2.w, c3.y
                add r2.w, r2.w, c3.z
                mul r2.w, r3.x, r2.w
                mul r2.w, r2.w, c64.z
                add r3.xyz, r1.w, r2.w
                mov r1.w, -r3.z
                add r1.w, r1.w, c0.y
                add r2.w, r1.w, c0.z
                cmp r1.w, r2.w, r1.w, c0.w
                add r2.w, r1.w, -c0.y
                cmp_pp r3.w, r2.w, c0.y, r1.w
                mov_pp r3.xyz, r3
                mov_pp r3, r3
                mul_pp r4.xyz, r4, r3
                mov_pp r5.xyz, -r4
                mov_pp r6.xyz, -r5
                add_pp r6.xyz, r4, r6
                cmp_pp r5.xyz, r6, r4, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, r5
                mul_pp r5.xyz, r5, c0.y
                add_pp r3.xyz, r4, r5
                mul_pp r3, r3, c89.x
                mov_pp r1.xyz, r1
                mov_pp r2.xyz, r2
                mov_pp r3, r3
                texld_pp r4, v0, s4
                mov_pp r4.xy, r4.xzzw
                texld r5, v2.zwzw, s5
                add r1.w, r5.x, -c1.y
                mul r2.w, r1.w, c79.w
                add_pp r4.x, r4.x, r2.w
                mul r4.x, r4.x, c72.x
                mov r4.z, -c73.x
                add r4.x, r4.x, r4.z
                add r4.w, r4.x, c0.z
                cmp r4.x, r4.w, r4.x, c0.w
                add r4.w, r4.x, -c0.y
                cmp r4.x, r4.w, c0.y, r4.x
                mov_pp r4.w, -r4.x
                mov_pp r5.x, -r4.w
                add_pp r5.x, r4.x, r5.x
                cmp_pp r4.w, r5.x, r4.x, r4.w
                log r4.w, r4.w
                mul r4.w, r4.w, c79.x
                exp r4.w, r4.w
                mul r4.x, r4.x, c79.y
                add r5.x, r4.x, c0.z
                cmp r4.x, r5.x, r4.x, c0.w
                add r5.x, r4.x, -c0.y
                cmp r4.x, r5.x, c0.y, r4.x
                mul r4.x, r4.w, r4.x
                texld_pp r5, v2, s4
                mov_pp r5.x, r5.x
                mul r2.xy, r2, c79.z
                texld r6, r2, s5
                mul r2.x, r6.x, c79.w
                mul r2.x, r2.x, c3.w
                add_pp r2.x, r5.x, r2.x
                mul r2.x, r2.x, c72.x
                add r2.x, r4.z, r2.x
                mul r2.x, r2.x, c77.x
                add r2.y, r2.x, c0.z
                cmp r2.x, r2.y, r2.x, c0.w
                add r2.y, r2.x, -c0.y
                cmp r2.x, r2.y, c0.y, r2.x
                texld_pp r5, v4, s4
                mov_pp r2.y, r5.y
                mul r2.w, r2.w, c75.y
                add_pp r2.y, r2.y, r2.w
                mul r2.y, r2.y, c75.z
                mov r2.w, -c75.x
                add r2.y, r2.y, r2.w
                add r2.w, r2.y, c0.z
                cmp r2.y, r2.w, r2.y, c0.w
                add r2.w, r2.y, -c0.y
                cmp r2.y, r2.w, c0.y, r2.y
                mul_pp r2.y, r2.z, r2.y
                dp3 r2.z, r0, c65
                mul_pp r2.w, r2.z, r2.z
                mov r4.z, -r4.x
                add r4.z, r4.z, c0.y
                mul r4.w, r2.x, c1.y
                mov r4.w, -r4.w
                add r4.w, r4.z, r4.w
                add r5.x, r4.w, c0.z
                cmp r4.w, r5.x, r4.w, c0.w
                add r5.x, r4.w, -c0.y
                cmp r4.w, r5.x, c0.y, r4.w
                mul r2.w, r2.w, r4.w
                mul r2.w, r2.w, c78.x
                add_pp r2.w, r2.w, c0.y
                mul r2.w, r2.w, c0.y
                mul r1.w, r1.w, c3.w
                add r1.w, r4.y, r1.w
                add r4.y, r1.w, c0.z
                cmp r1.w, r4.y, r1.w, c0.w
                add r4.y, r1.w, -c0.y
                cmp r1.w, r4.y, c0.y, r1.w
                mov r4.y, -r2.x
                add r4.y, r4.y, c0.y
                mul r4.y, r4.x, r4.y
                mul r4.y, r1.w, r4.y
                add_pp r1.w, r1.w, r4.y
                mul r2.z, r2.z, c1.y
                mul r2.z, r2.z, c1.y
                add r2.z, r2.z, c4.x
                mul_pp r1.w, r1.w, r2.z
                mul r5.xyz, r2.w, c70
                mov r2.xzw, -r2.x
                add r2.xzw, r5.xyyz, r2
                mul r5.xyz, r1.w, c71
                add_pp r2.xzw, r2, r5.xyyz
                mov_pp r5.xyz, c76
                mul r1.w, r2.y, r4.z
                mov_pp r6.xyz, -r2.xzww
                add_pp r5.xyz, r5, r6
                mul_pp r5.xyz, r1.w, r5
                add_pp r2.xyz, r2.xzww, r5
                mul r1.w, r4.z, r1.w
                add r1.w, r4.x, r1.w
                mul_pp r1.xyz, r1, r3.w
                add_pp r4.xyz, r1, c0.z
                cmp_pp r1.xyz, r4, r1, c0.w
                add_pp r4.xyz, r1, -c0.y
                cmp_pp r1.xyz, r4, c0.y, r1
                add_pp r1.xyz, r3, r1
                texld r3, v3, s2
                mul r3.xyz, r3, c80.x
                mov r4.xyz, -c80.z
                add_pp r3.xyz, r3, r4
                texld r4, v3.zwzw, s3
                mul r4.xyz, r4, c80.y
                dp3 r2.w, r4, c4.y
                mul r5.xyz, r3, r2.w
                add r3.xyz, r3, r5
                add r3.xyz, r4, r3
                add r4.xyz, r3, c0.z
                cmp r3.xyz, r4, r3, c0.w
                add r4.xyz, r3, -c0.y
                cmp_pp r3.xyz, r4, c0.y, r3
                mov r4.xyz, -c85
                add r4.xyz, r0, r4
                mov r5.xyz, -c86
                add r4.xyz, r4, r5
                mov r5.xyz, -c87
                add r4.xyz, r4, r5
                dp3 r5.x, c86, r4
                dp3 r5.y, c87, r4
                add r0.xz, r5.xyyw, -c1.y
                mul r0.xz, r0, c4.z
                add r0.xz, r0, c1.y
                add r2.w, r0.x, c4.w
                cmp r2.w, r2.w, c0.w, c0.y
                mov r3.w, -r0.x
                add r3.w, r3.w, c5.x
                cmp r3.w, r3.w, c0.w, c0.y
                add r2.w, r2.w, r3.w
                mov r2.w, -r2.w
                add r2.w, r2.w, r2.w
                cmp_pp r2.w, r2.w, c0.w, c0.y
                add r3.w, r0.z, c4.w
                cmp r3.w, r3.w, c0.w, c0.y
                mov r4.x, -r0.z
                add r4.x, r4.x, c5.x
                cmp r4.x, r4.x, c0.w, c0.y
                add r3.w, r3.w, r4.x
                mov r3.w, -r3.w
                add r3.w, r3.w, r3.w
                cmp_pp r3.w, r3.w, c0.w, c0.y
                mul r0.xz, r0, c81.xyyw
                add_pp r0.xz, r0, c81.zyww
                dsx_pp r4.xy, r0.xzzw
                dsy_pp r4.zw, r0.xyxz
                add_pp r2.w, r2.w, r3.w
                add r2.w, r2.w, c0.z
                mov r3.w, -r2.w
                mov r5.z, -r3.w
                add r5.z, r2.w, r5.z
                cmp r2.w, r5.z, r2.w, r3.w
                mov r2.w, -r2.w
                add r2.w, r2.w, r2.w
                cmp r2.w, r2.w, c0.y, c0.w
                if_ne r2.w, -r2.w
                  mov r2.w, -r5.x
                  add r2.w, r2.w, c0.y
                  cmp r2.w, r2.w, c0.w, c0.y
                  add r3.w, r5.x, c0.z
                  cmp r3.w, r3.w, c0.w, c0.y
                  add r2.w, r2.w, r3.w
                  mov r2.w, -r2.w
                  add r2.w, r2.w, r2.w
                  cmp_pp r5.zw, r2.w, c0.w, c0.y
                  add_pp r2.w, r5.w, r5.z
                  add_pp r3.w, r2.w, c0.z
                  cmp_pp r2.w, r3.w, r2.w, c0.w
                  add_pp r3.w, r2.w, -c0.y
                  cmp_pp r2.w, r3.w, c0.y, r2.w
                  mov r2.w, -r2.w
                  add_pp r2.w, r2.w, c0.y
                  mul r5.xy, r5, c81
                  add_pp r5.xy, r5, c81.zwzw
                  texldd_pp r5, r5, s0, r4, r4.zwzw
                  mul r5, r2.w, r5
                  mul r6.xyz, r5.w, c84
                  mul_pp r5.xyz, r5, r6
                  texldd_pp r4, r0.xzzw, s1, r4, r4.zwzw
                  mov_pp r4.x, r4.x
                  mov r4.y, c0.y
                  add r4.yzw, r4.y, c84.xxyz
                  mul r4.xyz, r4.x, r4.yzww
                  mul_pp r4.xyz, r4, c69.x
                  add_pp r5.xyz, r5, r4
                  mov r2.w, c84.w
                  mul r0.x, r2.w, c5.y
                  add r0.z, r0.x, c0.z
                  cmp r0.x, r0.z, r0.x, c0.w
                  add r0.z, r0.x, -c0.y
                  cmp r0.x, r0.z, c0.y, r0.x
                  mul r0.x, r5.w, r0.x
                  mov r0.x, -r0.x
                  add r0.x, r0.x, c0.y
                  mul r3.xyz, r3, r0.x
                  dp3_pp r0.x, r1, c6
                  mul_pp r0.x, r0.x, c82.x
                  mov r0.x, -r0.x
                  add_pp r0.x, r0.x, c0.y
                  add_pp r0.z, r0.x, c0.z
                  cmp_pp r0.x, r0.z, r0.x, c0.w
                  add_pp r0.z, r0.x, -c0.y
                  cmp_pp r0.x, r0.z, c0.y, r0.x
                  mul_pp r0.x, r0.x, r0.x
                  mov r0.z, -r1.w
                  add r2.w, r0.z, c0.y
                  mul_pp r0.x, r0.x, r2.w
                  mul_pp r5.xyz, r5, r0.x
                  mul_pp r4.xyz, r4, r0.x
                  add r0.x, r0.z, c5.z
                  mul r4.xyz, r4, r0.x
                  add r4.xyz, r4, c0.y
                  mul r2.xyz, r2, r4
                  add r1.xyz, r1, r5
                endif
                add_pp r1.xyz, r1, r3
                mul r0.x, r0.y, c3.x
                mov r0.y, -c74.x
                add r0.x, r0.x, r0.y
                add r0.y, r0.x, c0.z
                cmp r0.x, r0.y, r0.x, c0.w
                add r0.y, r0.x, -c0.y
                cmp_pp r0.x, r0.y, c0.y, r0.x
                mul_pp r0.x, r1.w, r0.x
                mov_pp r3.xyz, -r1
                add_pp r2.xyz, r2, r3
                mul_pp r0.xyz, r0.x, r2
                add_pp r0.xyz, r1, r0
                mul_pp r0.xyz, r0, c88.x
                mov r1.xyz, -r0
                add r1.xyz, r1, c90
                cmp_pp r0.xyz, r1, r0, c90
                mov_pp r0.xyz, r0
                mov_pp r0.xyz, r0
                mov r1.xyz, -c90
                add r1.xyz, r0, r1
                cmp r0.xyz, r1, c90, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.xyz, r0
                mov r0.w, -r0.w
                add r0.w, r0.w, c67.x
                mul r0.w, r0.w, c67.y
                add r1.x, r0.w, c0.z
                cmp r0.w, r1.x, r0.w, c0.w
                add r1.x, r0.w, -c0.y
                cmp r0.w, r1.x, c0.y, r0.w
                mov r1.xyz, c68
                mov r2.xyz, -r0
                add r1.xyz, r1, r2
                mul r1.xyz, r0.w, r1
                add r0.xyz, r0, r1
                mov r0.xyz, r0
                mov r0.w, c0.y
                mov oC0, r0
            
            // approximately 364 instruction slots used (9 texture, 355 arithmetic)
            };
    }
}

technique draw_stencil
{
    pass p0
    {
        vertexshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
            //
            // Parameters:
            //
            //   row_major float4x4 gWorldViewProj;
            //
            //
            // Registers:
            //
            //   Name           Reg   Size
            //   -------------- ----- ----
            //   gWorldViewProj c8       4
            //
            
                vs_3_0
                dcl_position v0
                dcl_position o0
                mul r0, c8, v0.x
                mul r1, c9, v0.y
                add r0, r0, r1
                mul r1, c10, v0.z
                add r0, r0, r1
                mul r1, c11, v0.w
                add o0, r0, r1
            
            // approximately 7 instruction slots used
            };

        pixelshader = 
            asm {
            //
            // Generated by Microsoft (R) HLSL Shader Compiler 9.23.949.2378
                ps_3_0
                def c0, 0, 0, 0, 0
                mov oC0, c0.x
            
            // approximately 1 instruction slot used
            };
    }
}

